这是一个非常简单的问题,是的,但我还不习惯 Web 开发(我主要是赢得应用程序)。
我有一个按钮可以做各种各样的事情。我希望它做的第一件事是:
lblStatus.Text = "In progress, please wait...";
问题是,当按下按钮时,这不会将标签的默认文本“就绪”更新为“进行中,请稍候...”。
我的问题是,我应该这样做还是应该使用 AJAX 之类的其他东西?
如果您仍然使用 ASP.NET Ajax,则可以使用为此而设计的UpdateProgress
控件。
“进行中”部分是在回发时发生的。在您编写的代码中,“进行中”只会在回复返回时显示。
这与使用 JS 防止双击(和双发)类似的问题
您可以尝试使用 AJAX(有关示例,请参见 URL)http://www.asp.net/ajaxlibrary/AjaxControlToolkitSampleSite/
详细信息:您可以使用 jQuery 在按下按钮时显示标签并在页面加载时隐藏它
例子:
jQuery
<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.0.min.js"></script>
<script type="text/javascript">
$(document).ready(function ()
{
// Hide the Label to start with
$('#<%=lblStatus.ClientID %>').hide();
$('#<%=btnSave.ClientID %>').click(function ()
{
// Show the Label when save button is clicked
$('#<%=lblStatus.ClientID %>').show();
});
});
</script>
ASP.NET 控件
<asp:Button ID="btnSave" runat="server" Text="Button" />
<asp:Label ID="lblStatus" CssClass="lblStatus" runat="server" Text="In progress, please wait..."></asp:Label>
您可以为此使用“UpdateProgress”。您只需要在 aspx.xml 中添加以下代码。当您单击按钮时,将显示“进行中,请稍候...”,直到过程结束。
<asp:UpdateProgress ID="UpdateProgress1" runat="server">
<ProgressTemplate>
<span style="text-decoration:blink; font-size:small; color:Gray;">
In progress, please wait...</span>
<%-- you can have image here instead of text--%>
</ProgressTemplate>
</asp:UpdateProgress>