[英]How to disable button on submit and enabled on ASP.NET postback complete
[英]How would one disable an ASP.NET WebForms button when its clicked, and have it be enabled again after postback completes?
我想做的就是能夠在按下按鈕后立即將其禁用,執行操作並重新啟用該按鈕。 看起來很簡單,但我的按鈕在需要時不會更新。 我嘗試了更新面板,但是不確定是否使用正確。 難道我做錯了什么? 還是有更好的方法來實現這一目標?
<asp:UpdatePanel runat="server" ID="updateSubmitButton">
<ContentTemplate>
<a href="#resultsSet"><asp:Button ID="btnSearch" CssClass="CrossoverButton" runat="server" Text="Search" OnClick="btnSearch_Click" /></a>
</ContentTemplate>
</asp:UpdatePanel>
protected void btnSearch_Click(object sender, EventArgs e)
{
btnSearch.Enabled = false;
updateContent();
// Do a lengthy operation here.
btnSearch.Enabled = true;
}
您將需要使用客戶端技術來禁用該按鈕。 這是因為,當您單擊按鈕時,頁面會向其自身回發信息,告訴服務器執行btnSearch_Click
。 根據您的代碼,這將
所有這些都發生在服務器上。 僅在方法執行完畢后,它才會將上下文返回到頁面。
為了禁用點擊按鈕,您需要嘗試以下操作:
<asp:Button ID="btnSearch" CssClass="CrossoverButton" runat="server" Text="Search"
OnClientClick="this.disabled = true;"
UseSubmitBehavior="false" />
OnClientClick="this.disabled = true;"
該行注冊了客戶端單擊處理程序,以禁用自身。
UseSubmitBehavior="false"
該行告訴ASP.NET在表單post中包含禁用的元素,因此服務器知道哪個控件注冊了postback。
另請參閱-https: //stackoverflow.com/a/11832053/86860
btnSearch_Click中的所有操作將在服務器上執行。 在整個頁面生命周期結束之前,不會呈現頁面。
如果要禁用該按鈕,則應使用javascript來執行此操作,然后僅在禁用該按鈕后才能回發到頁面。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.