如何在提交时禁用按钮并在ASP.NET回发时启用完成

本文关键字:NET 启用 ASP 按钮 提交 | 更新日期: 2023-09-27 18:25:49

我试图在提交时禁用两个ASP.NET按钮,并在回发完成时重新启用它们。要禁用按钮,我使用此代码:

cmdFiltrar.Attributes.Add("onclick", "javascript:" + cmdFiltrar.ClientID + ".disabled=true;" + ClientScript.GetPostBackEventReference(cmdFiltrar, ""))
cmdExcel.Attributes.Add("onclick", "javascript:" + cmdExcel.ClientID + ".disabled=true;" + ClientScript.GetPostBackEventReference(cmdExcel, ""))

它确实有效。但是,我如何或在什么情况下可以重新启用它们?我已经尝试了页面加载事件,但它似乎没有任何效果。

有什么想法吗?谢谢

如何在提交时禁用按钮并在ASP.NET回发时启用完成

您不是在使用Ajax来进行post-back。您只是启用客户端脚本(JavaScript)以导致完整的post返回到服务器(使用__doPostBack引发事件),除非涉及UpdatePanel。如果有一个UpdatePanel,它会进行部分回发。不管怎样,这里有两种情况的解决方案。

将此JavaScript添加到您的页面中。

<script type="text/javascript">
 function EnableButton() {
  var btn = document.getElementById("<%= cmdFiltrar.ClientID %>");
     if (btn.disabled == true) {
       btn.disabled = false;
    }
 }
</script> 

如果有完整的回发

调用您体内的上述JavaScript onLoad事件

<body onload="EnableButton();">

如果存在部分回发

调用UpdatePanel客户端onLoad事件中的JavaScript函数