首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

Repeater嵌套了CheckBox,id号如何做

2013-03-19 
Repeater嵌套了CheckBox,id号怎么做?asp:Repeater idRepeater1 runatserverItemTemplatetrtd

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);
            //创建DataSet对象
            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

热点排行