在Registerstartupscript触发后避免页面挂起

时间:2011-09-08 16:08:29

标签: asp.net ajax visual-studio asp.net-ajax updateprogress

我有一个asp.net 3.5应用程序,其中包含gridview,将复选框作为列之一。

如果用户未选中任何复选框并单击“提交”按钮,则会触发警报提示用户选择该按钮。

触发警报的代码如下;

 System.Text.StringBuilder sb = new System.Text.StringBuilder();
 sb.Append(@"<script language='javascript'>");
 sb.Append(@"alert('Please select at least one record!')");
 sb.Append(@"</script>");
 ScriptManager.RegisterStartupScript(upnlGrid, this.GetType(), "GridView", sb.ToString(), false);
 BindGrid();

在警报被触发之前,我看到“正在加载...”图像(ajax更新进度条),这很好。但是在警报被解雇后,我仍然需要看到相同的图像,这是不可见的。由于该页面被hangedup持续了几秒钟(5-10秒)。在那5-10秒我需要显示加载图像。

请指导!

1 个答案:

答案 0 :(得分:0)

您可以在执行回发之前尝试验证选择。这是一个粗略的例子:

<asp:Button ID="Button1" runat="server" Text="Foo" OnClientClick="return validateGridSelection()" ... />

你的JavaScript函数:

validateGridSelection = function() {
    var itemsSelected = 0;
    $("#<%=GridView1.ClientID%>").find("input:checkbox").each(function() {
        if (this.checked) {
            itemsSelected++;
        }
    });
    if (itemsSelected == 0) {
        alert("Please select at least one checkbox.");
    }
    return true;
}