我的页面上有一个按钮和一个linkButton,我只想在它们上使用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
时,它工作正常,但回发被触发,我不想刷新我的页面。
有什么想法吗?
答案 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在客户端点击事件。