2014-10-07 96 views
0

我想禁用提交上的两个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, "")) 

而且它工作。但是,如何或在什么情况下我可以重新启用它们?我已经尝试了页面加载事件,但它似乎没有任何影响。

任何想法?谢谢!

+0

当您的表单从客户端提交时,应该禁用按钮,一旦页面重新加载,回发已完成并且页面已被返回 – Icepickle 2014-10-07 23:33:31

+0

ok。我正在使用Ajax,因此我不知道是否有重新加载。但无论如何,我在哪里得到启用按钮?谢谢! – ericpap 2014-10-08 00:26:24

+0

如果您使用的是AJAX,是不是没有回传? – Hatjhie 2014-10-08 01:09:07

回答

2

您不使用Ajax做回发。除非涉及UpdatePanel,否则您只是启用客户端脚本(JavaScript)以便将完整的帖子发回服务器(使用__doPostBack引发事件)。如果有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();"> 

如果有一个局部回传

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

+0

感谢您的回复。事实上,我有2个按钮:一个触发updatepanel CallBack。另一个输出一个网格,以便我需要进行全面更新。我需要的是当我点击其中任何一个时禁用这两个按钮,当回调或回发完成时重新启用它们。我尝试在UpdatePanel的OnLoad中调用函数,但是出现错误,说我的函数不存在。任何想法? – ericpap 2014-10-08 18:58:01

+0

用你试过的代码更新你的问题(包括标记和C#),然后我就可以帮助你。 – Sam 2014-10-08 21:45:00