首页 文章

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

提问于
浏览
0

我有一个动态生成的复选框列的数据网格(Asp.Net)..我无法为复选框生成checkedChanged事件 .

这是我的代码:

public class ItemTemplate:ITemplate {//实例化复选框void ITemplate.InstantiateIn(Control container){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(object sender,EventArgs e){

}

提前致谢

2 回答

  • 1

    如果您的复选框ID没有在每次回发时以相同的方式设置,那么在处理事件时,它们永远不会连接到事件处理程序 . 你的领域“id”来自哪里?

  • 0

    您何时添加自定义列?如果是负载,那就太晚了 . 在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);
    }
    

相关问题