我有一个gridview,其中一个列中有一个按钮。我使用后面的代码向gridview添加列。我用这一行来附加我的点击事件:
cmd1.OnClientClick += new EventHandler(cmd1_Click);
现在每次点击该按钮时,都会给我一个运行时错误,并在System.EventHandler
的{{1}}处中断
有没有人遇到过这个问题。
答案 0 :(得分:4)
用户user1090190在评论中写道,onclick
(从OnClientClick
生成)在网络浏览器中作为JavaScript执行。
在这种情况下,+=
在创建的新ToString()
对象上调用EventHandler
,该对象生成字符串"System.EventHandler"
。 (+=
表达式扩展为cmd1.OnClientClick = cmd1.OnClientClick + (new EventHandler(cmd1_Click));
,隐式转换发生,因为OnClientClick
被输入为字符串。)
应该是(注意否 Client
):
cmd1.Click += new EventHandler(cmd1_Click)
或者,更简单(不要问我为什么自动完成总是“包裹”):
cmd1.Click += cmd1_Click;
确保此处理程序设置为每个回发,视情况而定。
快乐的编码。