2009-06-15 11 views
0

私はGridViewでページングに奇妙な経験をしています。 私はタイマーとupdateprogressを付け加えたupdatepanelを使って、griviewにデータを読み込むのをやめようとしています。 基本的に私がしようとしているのは、グリッドのあるページが有効になるとタイマーを開始するときです。 timer_tickイベントでは、データを取得して変数にロードします。その後、データバインドを強制するためにgridview上でdatabindを呼び出します。ここで私はそれを行うLinqDataSourceを使用しています。最後に私はupdatepanelのUpdateメソッドを使ってUIを更新しています。GridViewのページングは​​常に最初のページを表示します

グリッドビューの並べ替えやフィルタリングでは問題なく動作しますが、ページングするときにはページングテンプレートが常に最初のページ(アクティブなものとして表示)にとどまるはずです。どんなアイディアですか?

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

ところで、私は、データソースにし、それなしautopagingで試してみました:ここに私のコードの一部です。それはトリックをしませんでした。私はページングがうまくいくと言っていたので、UIは私の想定していたものを表示していません。

+0

私は実際にそれを理解しました。それは問題を引き起こしたgridview上の小さなviewstateサッカーでした。それをfalseに設定すると動作します。 –

答えて

0

GridViewのEnableViewState = "false"が機能しました。

関連する問題