【问题标题】:Adding checkbox with postback dynamically in gridview column在gridview列中动态添加带有回发的复选框
【发布时间】:2014-10-22 02:55:19
【问题描述】:

我正在尝试创建一个带有动态列的 gridview,这些列由复选框组成,该复选框必须能够触发 onchange 事件。

protected void Page_Load(object sender, EventArgs e) {
LoadTable();
}

LoadTables() - 根据用户订阅的模块列表动态创建列。

private void LoadTable()
{
    List<Module> ListModule = getModules(UserID);
    foreach (Module m in ListModule)
    {
        TemplateField tfield = new TemplateField();
        tfield.HeaderText = m.ModuleName;
        gv.Columns.Add(tfield);
    }
    gv.DataBind();
}

OnTheRowBound,一个复选框被创建并添加到表中。如何为复选框添加触发事件?

protected void OnRowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        List<Module> ListModule = getModules(UserID);
        int i = 2; // cell postioning
        foreach (Module m in ListModule)
        {
            CheckBox cbActive = new CheckBox();
            cbActive.ID = m.ModuleIDs;
            cbActive.Checked = Convert.ToBoolean((e.Row.DataItem as DataRowView).Row["isActive"].ToString());
            //How do i add an onCheckChanged event to trigger whenever the checkbox value is changed?
            //Something like: cbActive.CheckedChanged =  "SelectCheckBox_OnCheckedChanged"
            cbActive.AutoPostBack = true;
            e.Row.Cells[i].Controls.Add(cbActive);
            i++;
        }
    }
}


protected void SelectCheckBox_OnCheckedChanged(object sender, EventArgs e)
{
   //Update Database. 
}

我做错了吗?有没有更好的方法来创建这个功能?

【问题讨论】:

  • 它看起来没问题,只要它工作正常。你有什么问题吗?您可以使用 cbActive.CheckedChanged += SelectCheckBox_OnCheckedChanged; 注册事件;
  • 好吧,成功了!你能回答这个问题,我可以接受它。

标签: c# asp.net gridview dynamic checkbox


【解决方案1】:

试试这个:

cbActive.CheckedChanged += new EventHandler(cbActive_CheckedChanged);

处理程序:

protected void cbActive_CheckedChanged(object sender, EventArgs e)
{
  //your code here...
}

【讨论】:

    【解决方案2】:

    只是将其发布为答案而不是 cmets

    您可以使用以下代码注册事件

    cbActive.CheckedChanged += SelectCheckBox_OnCheckedChanged
    

    其他部分应该没问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-24
      • 2019-06-22
      • 1970-01-01
      • 2014-02-12
      • 2012-07-25
      • 2013-09-11
      • 2016-10-09
      • 2016-12-11
      相关资源
      最近更新 更多