1

我在其中一列中有一个带有按钮的gridview。我使用后面的代码将列添加到gridview。我用这一行来附加我的点击事件:

cmd1.OnClientClick += new EventHandler(cmd1_Click);

现在每次我单击该按钮时,它都会给我一个运行时错误并System.EventHandler中断<input type="submit" name="grvList$ctl02$ctl05" value="Add" onclick="System.EventHandler;" />

有没有人遇到过这个问题。

4

1 回答 1

4

正如用户 user1090190 在评论中所写,onclick(从 生成OnClientClick)在网络浏览器中作为 JavaScript 执行。

+=这种情况下,调用创建ToString()的新EventHandler对象会产生字符串"System.EventHandler"。(+=表达式扩展为cmd1.OnClientClick = cmd1.OnClientClick + (new EventHandler(cmd1_Click));并发生隐式转换,因为OnClientClick它被键入为字符串。)

它应该是(注意no Client):

cmd1.Click += new EventHandler(cmd1_Click)

或者,更简单地说(不要问我为什么自动完成总是“包装”):

cmd1.Click += cmd1_Click;

确保在适当的情况下设置此处理程序每​​个回发。

快乐编码。

于 2012-05-02T21:15:22.833 回答