1

我想在转发器中获取复选框的值和 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

4 回答 4

1

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

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 值。

于 2013-06-10T20:40:54.063 回答
0

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

protected void Check_Changed(Object sender, EventArgs e) 
{
    Checkbox item =  sender as Checkbox;
    UpdateDB(item.ID, item.Value);
}
于 2013-06-11T12:51:20.297 回答
0

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

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

   UpdateDB(ID, checkboxValue);
}
于 2013-06-10T20:38:42.207 回答
0

做这个:

    protected void Check_Changed(Object sender, EventArgs e) {

    var item =  sender as Checkbox;

    UpdateDB(item.ID, item.Value);


}
于 2013-06-10T20:38:08.837 回答