禁用/更改按钮文本,直到点击过程完成

Disable /change button text until click procedure complate?

本文关键字:过程 按钮 文本 禁用      更新时间:2023-09-26

我在更新面板中的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();
});