asp net repeater复选框

时间:2013-10-14 13:18:11

标签: asp.net checkbox repeater

我在Repeater中使用Checkbox,我怎么知道哪一个 OnCheckedChanged中的复选框已更改? 我试图设置id然后复选框是绑定数据,但是 不起作用。希望有人能帮助我

由于 /垫

2 个答案:

答案 0 :(得分:1)

检查sender(Event Target)参数

protected void Chb_Changed(object sender, EventArgs e)
{
    if (sender != null)
    {
      CheckBox cb=(CheckBox)sender;

      string clickedCheckBoxID=cb.ID;
    }
}

答案 1 :(得分:0)

试试以下内容。请注意,我们也可以绑定一些主要列,在某些隐藏字段中输入“ID”列,然后输入代码。

ASPX Side

<asp:Repeater ID="Repeater1" runat="server" DataSourceID="sqldtasource" >
       <ItemTemplate>
       <asp:CheckBox ID="chk" runat="server" AutoPostBack="true" Text='<%#Bind("Name")%>' OnCheckedChanged="Chb_Changed"/>
        <asp:HiddenField ID="hdn_ID" runat="server" Value='<%# DataBinder.Eval(Container.DataItem, "ID")  %>'/>
       </ItemTemplate>
 </asp:Repeater>

代码背后:

protected void Chb_Changed(object sender, EventArgs e)
    {
        if (sender != null)
        {
            try
            {
                 var hdnID = (HiddenField)checkBox.NamingContainer       .FindControl("hf_ID");
                if(hdnID != null)
                 {
                   string primaryFieldValue = hdnID.Value;
                 }

                if (((CheckBox)sender).Checked)
                {
                    Response.Write(((CheckBox)sender).Text + " is checked");
                }
            }
            catch { 

                  }
        }
    }