DataGrid(Asp.Net)中动态生成的Checkbox列的CheckedChanged事件

时间:2009-04-02 04:54:05

标签: asp.net c#-2.0

我有一个动态生成的复选框列的数据网格(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) {

}

提前致谢

2 个答案:

答案 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”来自哪里?