user2759163
user2759163

Reputation: 1

asp net repeater checkbox

I use a Checkbox in a Repeater, how can I know which Checkbox have changed in OnCheckedChanged? I have tried to set id then checkbox is binding data, but it will not work. Hope someone can help me

Thanks /Mats

Upvotes: 0

Views: 5272

Answers (2)

Murali Murugesan
Murali Murugesan

Reputation: 22619

Check the sender(Event Target) parameter

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

      string clickedCheckBoxID=cb.ID;
    }
}

Upvotes: 2

mit
mit

Reputation: 1841

Try following . Please note that we can also bind some primary column let's say "ID" column in some hidden field then get in code behind.

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>

Code Behind :

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 { 

                  }
        }
    }

Upvotes: 0

Related Questions