禁用/更改按钮文本,直到点击过程完成
本文关键字:过程 按钮 文本 禁用 | 更新日期: 2023-09-27 18:01:32
我在更新面板中的web表单中有asp按钮(runat="server"(。
<asp:UpdatePanel ID="UpdatePanelDoIt" runat="server">
<asp:Literal ID="LiteralDoIt" runat="server"></asp:Literal>
<asp:Button ID="ButtonDoIt" runat="server" Text="DoIt"/>
</asp:UpdatePanel>
当我点击这个按钮时,它会起作用。
Private Sub ButtonDoIt_Click(sender As Object, e As EventArgs) Handles ButtonDoIt.Click
me.ButtonDoIt.Enabled=False
me.ButtonDoIt.Text="Please wait..."
bla bla bla bla 'it takse one or two minute
LiteralDoIt.Text="<a href= bla bla"
bla bla bla bla
'finish process
me.ButtonDoIt.Enabled=true
me.ButtonDoIt.Text="Process Complete!"
End Sub
但单击此按钮时,我的按钮未被禁用或未更改文本
只有当流程完成时,我才能看到"流程完成"。
在windows窗体中,我总是在更改按钮文本行后使用"application.doevent"。我在窗体上看到了更改。
但是asp.net不允许这样做。(我使用vb.net(
我该怎么办?
非常感谢您的关注。
试试这个
HTML
<input type="submit" id="btnid" value="Save" />
JS
$(function(){
$('#btnid').click(function(){
$(this).val('processing...');
$(this).prop('disabled',true);
setTimeout(function(){$('#btnid').val('finished');$('#btnid').removeAttr('disabled');},5000);
});
});
演示此处
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Disable Button and Change Text of button</title>
</head>
<body>
<form id="form1" runat="server">
<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('<%= lblMessage.ClientID %>').innerText = "Processing...";
args.get_postBackElement().disabled = true;
}
</script>
<asp:UpdatePanel ID="updpnlSubmit" runat="server">
<ContentTemplate>
<asp:Button ID="btnSubmit" Text="Submit" runat="server" OnClick="btnSubmit_Click" />
<asp:Label ID="lblMessage" runat="server"></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
</form>
</body>
</html>
在源页面中添加脚本标记。更改代码中按钮的Id。您可以禁用该按钮,直到进程完成执行。
您可以使用ajax,或者您需要估计一个时间并像@Kiranramchadran那样做。
查看以下在VB.NET 中使用AJAX的示例
类名
Public Class NameHere
VB Page_Load
Ajax.Utility.RegisterTypeForAjax(GetType(NameHere), Me.Page)
VB函数
<Ajax.AjaxMethod()> _
Public Function ButtonClick() ...
Javascript
$('#btn').click(function(){
// Here you can disable your button
// Call your ajax function
NameHere.ButtonClick();
});