Asp.net Repeater复选框ID和值

时间:2013-06-10 20:27:42

标签: asp.net repeater

我想获取转发器中复选框的值和id,并将值保存在数据库中。 这就是我所拥有的;

中继器;

  • 我有这样的身份证; <%#DataBinder.Eval(Container.DataItem,“ID”)%>“>

我要使用的复选框

<asp:CheckBox ID="chkRemind"  runat="server" OnCheckedChanged="Check_Changed" AutoPostBack="true" /> 

背后的代码

    protected void Check_Changed(Object sender, EventArgs e) {

        I need to know the Id and find out the current checkbox value
        so i can do 

        UpdateDB(ID, checkboxValue);


    }

4 个答案:

答案 0 :(得分:1)

您可以将id数据绑定到数据属性,然后在回发时读取。

cb.Attributes["data-id"] = DataItem.ID;

protected void Check_Changed(Object sender, EventArgs e) {

    var checkbox = sender as CheckBox;

    int ID = int.Parse(checkbox.Attributes["data-id"]);

    UpdateDB(ID, CheckBox.Checked);


}

确保验证当前用户是否有权编辑所请求的项目,因为可以在客户端上更改data-id值。

答案 1 :(得分:0)

这样做:

    protected void Check_Changed(Object sender, EventArgs e) {

    var item =  sender as Checkbox;

    UpdateDB(item.ID, item.Value);


}

答案 2 :(得分:0)

变量sender包含触发事件的Control,因此您只需将其强制转换为CheckBox

protected void Check_Changed(Object sender, EventArgs e) 
{
   CheckBox chbSomeCheckbox = (CheckBox)sender;
   var ID = chbSomeCheckbox.ID;
   var checkboxValue = chbSomeCheckbox.Checked;

   UpdateDB(ID, checkboxValue);
}

答案 3 :(得分:0)

您需要做的就是获取发件人控件的ID

protected void Check_Changed(Object sender, EventArgs e) 
{
    Checkbox item =  sender as Checkbox;
    UpdateDB(item.ID, item.Value);
}