我有一个动态生成复选框列的数据网格。我无法做到 为复选框生成checkedChanged事件..
这是我的代码:
public class ItemTemplate : ITemplate
{
//Instantiates the checkbox
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(box);
}
public event EventHandler CheckedChanged;
private void OnCheckChanged(object sender, EventArgs e)
{
if (CheckedChanged != null)
{
CheckedChanged(sender, e);
}
}
}
这是事件
private void OnCheckChanged(object sender, EventArgs e)
{
}
提前致谢
答案 0 :(得分:2)
通常我们在控件上使用了“CommandName”属性。这将传递给GridView的RowCommand事件。然后,您可以检查CommandName的值并相应地执行操作。
答案 1 :(得分:0)
由于您动态添加控件,您还需要将其添加到viewState(请参阅LoadViewState和SaveViewState的覆盖)。
当您进行回发时,该页面没有关于您添加的复选框的信息,这就是您没有收到任何事件的原因。
它很好地描述了这些问题。