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

时间:2014-10-07 23:27:31

标签: javascript c# asp.net

我正在尝试在提交时禁用两个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, ""))

它有效。但是如何才能重新启用它们?我已经尝试过页面加载事件,但似乎没有任何影响。

有什么想法吗?谢谢!

1 个答案:

答案 0 :(得分:2)

您没有使用Ajax进行回发。您只是启用客户端脚本(JavaScript)以使完整的帖子返回服务器(使用__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函数