2009-06-15 114 views
0

I'm具有分頁上一個GridView一個奇怪的體驗。 我正嘗試延遲加載數據到我griview通過使用一個UpdatePanel具有連接到其上的計時器和的UpdateProgress。 所以basicly什麼我正嘗試做的是當與電網負荷的頁面我通過使其開始計時。在timer_tick事件中,我正在獲取數據並將其加載到變量中。然後調用gridview上的數據綁定,強制它綁定數據。這裏我使用LinqDataSource來做到這一點。最後,我通過updatepanel上的Update方法更新UI。GridView的分頁始終顯示第一頁

這一切工作正常使用排序和GridView控件過濾,但是當I'm分頁它電網網頁像它應該,但分頁模板始終保持在第一頁(顯示1爲活動)。任何想法的人?下面是我的一些代碼:

<asp:LinqDataSource runat="server" ID="OrdersDataSource" 
     OnSelecting="OrdersDataSource_Selecting" AutoPage="false" /> 

    <asp:GridView runat="server" ID="OrdersGridView" AutoGenerateColumns="false" 
     DataSourceID="OrdersDataSource" 
     AllowPaging="true" AllowSorting="true" PageSize="3"> 

    <Columns> 

...

<asp:Timer runat="server" ID="LazyLoadUpdatePanel" 
    Enabled="false" 
    Interval="1" OnTick="LazyLoadUpdatePanel_Tick" /> 

...

protected void LazyLoadUpdatePanel_Tick(object sender, EventArgs e) 
{ 
    if (datasource == null) 
    { 
     System.Threading.Thread.Sleep(2000); 
     datasource = customer.Orders; 
     OrdersGridView.DataBind(); 
     OrdersUpdatePanel.Update(); 

    } 
    LazyLoadUpdatePanel.Enabled = false; 
} 

BTW我曾嘗試與數據源,沒有它autopaging。這並沒有訣竅。正如我所說的分頁似乎工作,用戶界面只是沒有顯示我應該。

+0

我竟然想通了。這是Gridview上造成問題的小視圖狀態。將其設置爲false會使其工作。 – 2009-06-15 17:28:27

回答

0

的EnableViewState在GridView上= 「假」 使它工作。