读书人

Repeater嵌套了CheckBoxid号如何做

发布时间: 2013-03-19 17:22:05 作者: rapoo

Repeater嵌套了CheckBox,id号怎么做?


<asp:Repeater id="Repeater1" runat="server">
<ItemTemplate>
<tr>
<td class="css">
<asp:CheckBox ID="CheckBox1" runat="server" CssClass="css" Text='<%# DataBinder.Eval(Container.DataItem,"user_name")%>'>
</asp:CheckBox>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>


后台用的数据绑定

private void Bind_DealMan()
{

//定义数据连接对象,其中数据库连接字符串是在Web.Config文件中定义的
obj.open();

//创建数据适配器对象
OleDbDataAdapter da = new OleDbDataAdapter("select * from employee order by idx asc", obj.myconn);
//创—ataSet对象
DataSet ds = new DataSet();
try
{
da.Fill(ds, "employee");
Repeater1.DataSource = ds.Tables["employee"];
Repeater1.DataBind();
}
catch (Exception error)
{
obj.myconn.Close();
obj.myconn.Dispose();
Response.Write(error.ToString());
}
}



这样在前台根据数据库的记录数产生N个CheckBox,现在的问题是ID号怎么取啊,ID号还要用来最后取值呢?
[解决办法]
id也可以绑定字段(最好是绑定主键字段)
<asp:Repeater id="Repeater1" runat="server">
<ItemTemplate>
<tr>
<td class="css">
<asp:CheckBox ID="Chk<%# DataBinder.Eval(Container.DataItem,"user_name")%>" runat="server" CssClass="css" Text='<%# DataBinder.Eval(Container.DataItem,"user_name")%>'>
</asp:CheckBox>


</td>
</tr>
</ItemTemplate>
</asp:Repeater>

[解决办法]
<input type="checkbox" name="cb_id" id="cb_id" value="<%# Eval("autoid") %>" />

string _id = Request.From["cb_id"];
foreach (string item in _id.Split(','))
[解决办法]

  <asp:CheckBox ID="cbo_ID" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"user_name")%>' />


后台循环

for (int i = 0; i < Repeater1.Items.Count; i++)
{
CheckBox cbo = Repeater1.Rows[i].FindControl("cbo_ID") as CheckBox;
cbo.Visible = false;
}


我想到的办法 不知道你在乎不在乎性能....
前台ID相同也没关系...

小弟不才 只能帮到这了.
[解决办法]
引用:
CheckBox cbo = Repeater1.Rows[i].FindControl("cbo_ID") as CheckBox;

是这样的。Repeater每一项里边都有一个CheckBox1对象。

http://bbs.csdn.net/topics/370082136
http://bbs.csdn.net/topics/290053134
http://bbs.csdn.net/topics/380216529

读书人网 >asp.net

热点推荐