我有一个动态生成的复选框列的数据网格(Asp.Net)。我无法为复选框生成checkedChanged事件。
这是我的代码:
公共类ItemTemplate:ITemplate
{
//实例化复选框
void ITemplate.InstantiateIn(控件容器)
{
CheckBox box = new CheckBox();
box.CheckedChanged + = new EventHandler(this.OnCheckChanged);
box.AutoPostBack = true;
box.EnableViewState = true;
box.Text = text;
box.ID = id;
container.Controls.Add(盒);
}
public event EventHandler CheckedChanged;
private void OnCheckChanged(object sender, EventArgs e)
{
if (CheckedChanged != null)
{
CheckedChanged(sender, e);
}
}
}
这是事件
private void OnCheckChanged(对象发送者,EventArgs e) {
}
提前致谢
答案 0 :(得分:1)
您何时添加自定义列?如果是负载,那就太晚了。在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);
}
答案 1 :(得分:0)
如果您的复选框ID没有在每次回发时以相同的方式设置,那么在处理事件时,它们永远不会连接到事件处理程序。你的领域“id”来自哪里?