2012-05-02 49 views
1

我有一个在其中一列的按钮的gridview。我使用后面的代码向gridview添加列。我用这条线来连接我的单击事件:“系统未定义”使用点击处理程序时出现JavaScript错误?

cmd1.OnClientClick += new EventHandler(cmd1_Click);

现在我每次点击按钮时,它给了我在System.EventHandler<input type="submit" name="grvList$ctl02$ctl05" value="Add" onclick="System.EventHandler;" />

有没有人遇到了这个问题,运行时错误和休息。

+2

您试图使用服务器端代码来处理客户端事件。 'onclick'说运行这个javascript的东西,而不是c#的东西 – Snuffleupagus

+0

@scrappedcola大部分时间是的,但这是动态HTML由后面的代码生成。 –

回答

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) 

,或者更简单(唐“T问我为什么自动完成始终是‘包装’):

cmd1.Click += cmd1_Click; 

确保这个处理器是建立每个回发,如适用。

快乐编码。

+0

你是正确的,但没有cmd1.OnClick它是有cmd1.Click似乎工作。 –

+1

@JoeTyman感谢您的更正,更新。我很失落,没有“智能感知”:( – 2012-05-02 21:20:44

相关问题