DataGrid(Asp.Net)中动态生成的复选框列的CheckedChanged事件
我有一个带有动态生成的复选框列的datagrid(Asp.Net)。我无法为复选框生成checkedChanged事件 这是我的密码: 公共类ItemTemplate:ITemplate { //实例化复选框 void ITemplate.ein(控制容器) { 复选框=新复选框();DataGrid(Asp.Net)中动态生成的复选框列的CheckedChanged事件,asp.net,c#-2.0,Asp.net,C# 2.0,我有一个带有动态生成的复选框列的datagrid(Asp.Net)。我无法为复选框生成checkedChanged事件 这是我的密码: 公共类ItemTemplate:ITemplate { //实例化复选框 void ITemplate.ein(控制容器) { 复选框=新复选框(); box.CheckedChanged+=新的EventHandler(this.OnCheckChanged); box.AutoPostBack=true; box.EnableViewState=true;
box.CheckedChanged+=新的EventHandler(this.OnCheckChanged); box.AutoPostBack=true; box.EnableViewState=true; box.Text=文本; box.ID=ID; container.Controls.Add(box); } } 这就是事件 私有void OnCheckChanged(对象发送方,事件参数e) { }
提前感谢如果您的复选框ID在每次回发时的设置方式不同,则在处理事件时,它们永远无法连接到事件处理程序。您的字段“id”来自哪里?何时添加自定义列?如果有货,那就太晚了。在init上加载它。即,以下代码适用于您的代码:
protected void Page_Init(object sender, EventArgs e)
{
ItemTemplate myTemplate = new ItemTemplate();
myTemplate.CheckedChanged += new EventHandler(myTemplate_CheckedChanged);
TemplateField col = new TemplateField();
col.ItemTemplate = myTemplate;
col.ItemStyle.Wrap = false;
grid.Columns.Add(col);
}
protected void Page_Init(object sender, EventArgs e)
{
ItemTemplate myTemplate = new ItemTemplate();
myTemplate.CheckedChanged += new EventHandler(myTemplate_CheckedChanged);
TemplateField col = new TemplateField();
col.ItemTemplate = myTemplate;
col.ItemStyle.Wrap = false;
grid.Columns.Add(col);
}