将onCheckChanged添加到动态复选框

时间:2011-10-08 13:43:55

标签: asp.net

有没有办法将onCheckedChanged函数添加到动态复选框。这些复选框将在运行时添加到gridview,具体取决于gridview中的数据。

全部谢谢

2 个答案:

答案 0 :(得分:1)

是的,您可以在GridView控件的RowDataBound事件中连续找到控件,并在代码隐藏中订阅必要的事件。

void CustomersGridView_RowDataBound(Object sender, GridViewRowEventArgs e)
  {

    if(e.Row.RowType == DataControlRowType.DataRow)
    {
      // Display the company name in italics.
      ((Checkbox)e.Row.FindControl("my_checkbox_id")).CheckedChanged += (sender, args) => {
          // do something in handler
      }

    }

  }

答案 1 :(得分:1)

动态控件仅在每次回发时重新创建动态控件时才支持事件。因此,唯一的解决方案是连续(在每次回发时)将数据绑定到gridview。 如果你有包装gridview绑定代码!IsPostback条件删除它并在那之后检查。

顺便说一句,请注意,如果gridview的数据源数据将被更改,则每个动态控件将获得一个新的UniqueID值,并且不会处理这些控件事件。

P.S。也许更好的方法是不要将控件添加到行中,而是根据DataItem中的数据设置Visible属性值。在这种情况下,您可能在ItemTemplate中只有几个服务器控件,并且只显示其中一个。