【发布时间】:2011-06-15 10:44:18
【问题描述】:
我生成了几个按钮,并为它们附加了一个像这样的事件处理程序:
Button pgs = new Button();//Create New Topic
pgs.Width = 20;
pgs.Command += obtainTopicsPerPage_Click;
pgs.CommandName = tPage.ToString();
pgs.Text = tPage.ToString();
btns.Add(tPage.ToString());
buttons.Add(pgs);
}
void obtainTopicsPerPage_Click(Object sender, CommandEventArgs e)
{
foreach (var item in tPages)
{
if (item.Key == e.CommandName)
{
foreach (var posts in item.Value)
{
posts.ExecuteAll();
}
}
}
MyButtonTable();
}
现在,当我单击按钮时,事件处理程序永远不会触发。我用调试器检查,当我点击按钮时,只有一个回发,但它没有到达事件处理函数的内部
更新:
void Page_PreInit(object sender, EventArgs e)
{
List<Button> btn=(List<Button>)ViewState["Buttons"];
foreach (var item in btn)
{
item.Width = 20;
item.Command += obtainTopicsPerPage_Click; //resigning the eventhandlers from the begining
item.CommandName = tPage.ToString();
item.Text = tPage.ToString();
}
}
【问题讨论】:
-
回发后你是否再次连接按钮事件?
-
应该是 pgs.Command += new CommandEventHandler(this.obtainTopicsPerPage_Click); ?
-
不是真的,Renius...,不,我不知道 WraithNath