我有一个登录表单,我需要将登录按钮的文本更改为PleaseWait ...并禁用它,一旦验证身份验证它将重定向到另一个页面,否则它会将按钮文本更改为登录并启用按钮。
我尝试使用UpdatePanel,但只有在按钮点击事件中执行整个代码后才会更改文本。
ASPX代码:
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<asp:UpdatePanel runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Button Text="Change" runat="server" ID="BtnChangeText" OnClick="BtnChangeText_Click" />
</ContentTemplate>
</asp:UpdatePanel>
C#代码:
protected void BtnChangeText_Click(object sender, EventArgs e)
{
BtnChangeText.Text = "Loading...";
BtnChangeText.Enabled = false;
System.Threading.Thread.Sleep(5000);
}
我也尝试使用JavaScript,在这里我可以禁用和启用按钮,但无法更改按钮的文本。
ASPX代码:
<asp:ScriptManager ID="sc" runat="server" EnablePartialRendering="true">
</asp:ScriptManager>
<script type="text/javascript">
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler);
function BeginRequestHandler(sender, args) {
document.getElementById('BtnChangeText').innerText = "Processing...";
args.get_postBackElement().disabled = true;
}
</script>
<asp:UpdatePanel ID="updpnlSubmit" runat="server">
<ContentTemplate>
<asp:Button ID="BtnChangeText" Text="Submit" runat="server" OnClick="BtnChangeText_Click" />
<asp:Label ID="lblMessage" runat="server"></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
C#代码:
protected void BtnChangeText_Click(object sender, EventArgs e)
{
System.Threading.Thread.Sleep(5000);
BtnChangeText.Enabled = true;
}
现在,如果有人可以帮我改变按钮的文字,我将不胜感激。
答案 0 :(得分:0)
您应该使用ajax进行异步调用:
https://www.codeproject.com/Tips/769238/Call-Server-Side-Code-using-ASP-NET-AJAX-and-jQuer
答案 1 :(得分:0)
以下代码
args.get_postBackElement().value = "Please wait...";