“系统未定义”使用单击处理程序时出现JavaScript错误?

时间:2012-05-02 21:06:08

标签: c# javascript asp.net

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

cmd1.OnClientClick += new EventHandler(cmd1_Click);

现在每次点击该按钮时,都会给我一个运行时错误,并在System.EventHandler的{​​{1}}处中断

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

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;

确保此处理程序设置为每个回发,视情况而定。

快乐的编码。