将CheckedChanged事件的复选框添加到动态GridView

时间:2012-03-02 04:18:14

标签: c# asp.net

我想动态地向动态GridView添加一个复选框以及一个Event。

即。对于网格,我必须根据数据库添加动态选中或取消选中的复选框。通过单击复选框本身,我想更新数据库。

为此,我需要动态加载事件以及复选框。

我完成的是静态版本,并在此处展出:

在数据库RoleID(管理员,采购官等)中,存储ActivityID(离开应用程序等)和OperationID(保存,编辑等)。

第一行暗示Admin(roleid 1)允许活动离开应用程序(Activityid 3)保存操作(OperationID 1)。

2 个答案:

答案 0 :(得分:6)

对不起, 按照这个

在gridview中放置一个复选框

这是一个例子 HTML代码在gridview中声明一个复选框

               <asp:TemplateField HeaderText="chkbox">
                   <ItemTemplate>
                       <asp:CheckBox ID="CheckBox1" runat="server"  AutoPostBack="true"
                           oncheckedchanged="CheckBox1_CheckedChanged"  />
                   </ItemTemplate>
               </asp:TemplateField>

现在关于复选框的事件

protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
{
   GridViewRow row = ((GridViewRow)((CheckBox)sender).NamingContainer);
    int index = row.RowIndex;
    CheckBox cb1 = (CheckBox)Gridview.Rows[index].FindControl("CheckBox1");
    string checkboxstatus;
    if (cb1.Checked == true)
        checkboxstatus = "YES";
    else if(cb1.Checked == false)
        checkboxstatus = "NO";

    //Here Write the code to connect to your database and update the status by 
    //sending the checkboxstatus as variable and update in the database.
}

答案 1 :(得分:4)

如果要在运行时添加复选框,则在添加复选框时,需要定义复选框事件。

例如:

    TableCell tcCheckCell = new TableCell();
    var checkBox = new CheckBox();
    checkBox.CheckedChanged += checkBox_CheckedChanged;
    tcCheckCell.Controls.Add(checkBox);
    gridView.Rows[0].Cells.AddAt(0, tcCheckCell);

    void checkBox_CheckedChanged(object sender, EventArgs e)
    {
        //do something: You can use Krishna Thota's Code.
    }