OnClientClick不适用于asp按钮

时间:2013-11-27 08:22:45

标签: javascript asp.net

我的页面上有一个按钮和一个linkBut​​ton,我只想在它们上使用OnClientClick事件,所以我写了这个:

myButton.Attributes.Add("OnClientClick", "document.getElementById('popUp').style.display='block';document.getElementById('mask').style.display='block'; return false;");
myLinkButton.Attributes.Add("OnClientClick", "document.getElementById('popUp').style.display='block';document.getElementById('mask').style.display='block';return false;");

它适用于其他页面但不在此处,OnClientClick被忽略,我不明白为什么。

当我将OnClientClick替换为OnClick时,它工作正常,但回发被触发,我不想刷新我的页面。

有什么想法吗?

3 个答案:

答案 0 :(得分:0)

OnCLientClick是服务器端Button的属性,因此请勿使用Attributes.Add,但是:

myButton.OnClientClick = "document.getElementById('popUp').style.display='block';document.getElementById('mask').style.display='block'; return false;"
myLinkButton.OnClientClick = "document.getElementById('popUp').style.display='block';document.getElementById('mask').style.display='block';return false;"

来自MSDN:

  

您为此属性指定的脚本将在   除了控件之外,按钮控件的 OnClick 属性   预定义的客户端脚本

我认为其他属性会导致可以写入OnClick属性的问题,例如UseSubmitBehavior

答案 1 :(得分:0)

当您向Attributes集合添加属性时,这些属性实际上是HTML属性,而不是服务器端 - 并且没有HTML属性OnClientClick,只需单击on。

并且onclick应该按照你想要的方式工作,除非在返回false之前在代码中出现错误(我怀疑是这种情况)。

答案 2 :(得分:0)

为您的按钮指定ID属性,如ID =“myButton”和ClientIDMode =“Static”,这样您就可以使用javascript或jquery在客户端点击事件。