有没有办法将onCheckedChanged函数添加到动态复选框。这些复选框将在运行时添加到gridview,具体取决于gridview中的数据。
全部谢谢
答案 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中只有几个服务器控件,并且只显示其中一个。