我的网页表单中有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窗体中,我总是在更改buttontext行后使用“application.doevent”。我看到在我的表单上更改。
但asp.net不允许这样做。(我使用的是vb.net)
我该怎么办?
非常感谢您的兴趣。
答案 0 :(得分:1)
试试这个
<强> 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);
});
});
<强> DEMO HERE 强>
答案 1 :(得分:0)
您可以使用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();
});
答案 2 :(得分:0)
<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。您可以禁用该按钮,直到该过程完成执行。