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相同也没关系...
小弟不才 只能帮到这了.
[解决办法]
是这样的。Repeater每一项里边都有一个CheckBox1对象。
http://bbs.csdn.net/topics/370082136
http://bbs.csdn.net/topics/290053134
http://bbs.csdn.net/topics/380216529