2011-09-08 22 views
0

我有一個asp.net 3.5應用程序,其中包含gridview,複選框作爲其中一列。Registerstartup腳本觸發後避免頁掛斷

如果用戶沒有選擇任何複選框並單擊提交按鈕,警報會觸發提示用戶選擇按鈕。

觸發警報的代碼如下;

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更新進度條),這很好。但是,當警報被解僱後,我仍然需要看到相同的圖像,這是不可見的。由於該頁面持續幾秒鐘(5-10秒)。對於那5-10秒,我需要顯示加載圖像。

請指導!

回答

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; 
} 
+0

感謝您的輸入詹姆斯,但我的查詢不是如何火起來的警報,但如何顯示警報後,進度條被觸發,直到網格完全加載(綁定) –

+0

如果在回發發生之前顯示警報,進度條應該在警報之後顯示,對吧?我認爲你只需要改變方法返回真,無論(所以它執行回發) –

+0

需要做什麼改變? –