2017-06-21 18 views
2

在我的應用程序中,我有兩個下拉菜單。在更改下拉選擇時,我在樹結構中加載多個網格,但加載這些網格需要一些時間(將所有網格加載大約5分鐘)。正因爲如此,我選擇使用下面的代碼來顯示加載進度:僅在網格加載時顯示進度

.aspx的代碼:

<form> 
    <img style="visibility:hidden;" src="~/Image/loader.gif" runat="server" id="loading_image" /> 
    <asp:DropDownList ID="ddl1" runat="server" Height="22px" Width="121px" OnSelectedIndexChanged="ddlYear_SelectedIndexChanged" AutoPostBack="True"> 
    </asp:DropDownList> 
    <asp:DropDownList ID="ddl2" runat="server" Height="22px" Width="121px" OnSelectedIndexChanged="ddlYear_SelectedIndexChanged" AutoPostBack="True"> 
    </asp:DropDownList> 
</form> 

時總是越來越顯示與上面的代碼的問題加載進度,即使在網格是加載。但是,我只需要顯示加載進度的時間,當網格加載完成時,一旦加載完成,加載進度不應該出現。我怎樣才能做到這一點?

回答

1

我會建議使用的UpdateProgress標籤

的DisplayAfter是毫秒,直到進程是不完整的規定秒之後將運行。

<asp:UpdateProgress DynamicLayout="true" ID="upProgSearch" DisplayAfter="1500" runat="server" > 
    <ProgressTemplate> 

      <asp:Image ID="Image1" ImageUrl="~/images/Loading.gif" runat="server" /> 

    </ProgressTemplate> 
</asp:UpdateProgress> 
+0

嘗試在下拉列表中添加一個名爲onchange的事件,並在onchange事件中使用$('id')。style.display ='block';來激活updateprogress。 –

+0

一旦數據被綁定,你可以隱藏updateprogress顯示爲none,可以在代碼後面執行。 –

+0

您需要在網格中使用Ondatabound事件,而不是在下拉選中的索引上,所以在父網格上可以調用onDataBound(這是最後一個事件,您可以獲取進度條的ID並將樣式設置爲none) –