OnClientClick没有'无法使用asp按钮

OnClientClick doesn't work on asp button

本文关键字:asp 按钮 没有 OnClientClick      更新时间:2023-11-11

我的页面上有一个按钮和一个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被忽略了,我不明白为什么。

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

有什么想法吗?

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属性以及控件的预定义的客户端脚本

我假设其他属性会导致这种问题,这些属性可以像UseSubmitBehavior一样写入OnClick属性。

当您将属性添加到attributes集合时,这些属性实际上是HTML属性,而不是服务器端-并且没有HTML属性OnClientClick,只有onclick。

onclick应该按照您想要的方式工作,除非在返回false之前代码中有错误(我怀疑是这样)。

给你的按钮一个ID属性,比如ID="myButton"和ClientIDMode="Static",这样你就可以用javascript或jquery在客户端触发事件点击。