我使用ASP.NET進行開發。 在這裏,我想要的是,一旦我點擊按鈕A(按鈕A上的文本是「開始」),則按鈕A上的文本將變爲「正在處理...請稍候」,並且按鈕A將變爲不可點擊。然後執行存儲過程(存儲過程的持續時間爲1分鐘)。存儲過程完成後,按鈕A上的文本將變爲「開始」,按鈕A將變爲可點擊。更改按鈕上的文本和點擊按鈕後啓用狀態(asp.net)
我想,存儲過程之前,我添加了這些代碼:
ButtonA.Text = "processing...please wait";
ButtonA.Enabled = false;
和存儲過程後,我添加了這些代碼:
ButtonA.Text = "Start";
ButtonA.Enabled = true;
但結果是在按鈕上的文本在存儲過程執行期間,按鈕A仍然是可點擊的。 誰能告訴我如何實現我想要的?謝謝。
然後編輯我的aspx文件將低於:
<asp:ScriptManager ID="MainScriptManager" runat="server"/>
<asp:UpdatePanel ID="pnlHelloWorld" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">
<ContentTemplate>
<asp:Button ID="ButtonA" runat="server" OnClick="ButtonA_Click" Text="Start" />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ButtonA" EventName="Click"/>
</Triggers>
</asp:UpdatePanel>
但按鈕上的文字仍然保持不變,按鈕仍是可以點擊的。
這是行不通的。在頁面完成加載併發送給客戶端後,UI僅更新一次。它不會在兩者之間更新。如果你想改變這樣的Button文本,你將不得不使用Ajax。 – VDWWD
你能告訴我如何使用Ajax做到這一點嗎?我是Ajax新手。謝謝 –
您可以使用Ajax來實現。爲此,請將組件放在'UpdatePanel'控件中。在你的情況下,你會把'Buttons'放入UpdatePanel中。所以無論何時你點擊'ButtonA',你的請求都會被處理,你將得到服務器的迴應。請注意'UpdatePanel'內只有控件會被更新。 –