【发布时间】:2018-07-17 19:00:06
【问题描述】:
我有一个登录表单,我需要将登录按钮的文本更改为 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;
}
如果有人能帮助我更改按钮的文本,我将不胜感激。
【问题讨论】:
-
您能否检查一下渲染按钮是否与您在aspx页面中创建的ID相同,查看渲染的html
-
id 相同的所有地方:BtnChangeText
-
我可以禁用/启用,但无法通过 aspx 代码中的 JavaScript 更改按钮上的文本
标签: javascript c# jquery asp.net