我有一個GridView綁定到一個複雜的存儲過程(財務數據)的窗體。這個查詢大約需要3分鐘來運行並加載gridview。用戶不耐煩,反覆點擊「搜索」,這會讓事情變得更糟。如何在數據綁定發生時顯示模態對話框?
作爲臨時解決方案,我想展示一個進度條,並使用ASP.NET AJAX ModalPopupExtender找到了一個解決方案。
這是代碼我有添加擴展到頁面:
<ajaxToolkit:ModalPopupExtender ID="mdlPopup" runat="server" TargetControlID="Button1"
PopupControlID="pnlPopup" BackgroundCssClass="modalBackground" />
<asp:Panel ID="pnlPopup" runat="server" CssClass="updateProgress" style="display: none">
<div align="center" style="margin-top: 13px;">
<img src="../images/progress.gif" alt="Progress" />
<span class="updateProgressMessage">Loading ...</span>
</div>
</asp:Panel>
這是按鈕的單擊事件的代碼非常簡單:
protected void Button1_Click(object sender, EventArgs e)
{
gvInvoice.DataBind();
}
的問題是,當我單擊搜索按鈕,模式對話框彈出,但Databind()方法永遠不會被調用。我嘗試使用mdlPopup.Show()
,但不顯示對話框,而只是運行Databind()
。
我錯過了什麼?如何確保模式對話框出現,數據綁定運行,然後模態對話框消失?