2009-06-15 13 views
0

Ich habe eine seltsame Erfahrung mit Paging auf einem GridView. Ich versuche, Daten in mein grewview zu laden, indem ich ein Updatepanel mit einem Timer und Updateprofig verwende. Also, was ich versuche zu tun ist, wenn die Seite mit dem Gitter lädt Ich starte den Timer, indem Sie es aktivieren. Im timer_tick-Ereignis hole ich die Daten und lade diese in eine Variable. Dann wird die Databind auf der Gridview aufgerufen, um die Daten zu binden. Hier verwende ich eine LinqDataSource, um das zu tun. Zuletzt aktualisiere ich die Benutzeroberfläche über die Update-Methode auf dem Updatepanel.GridView Paging zeigt immer die erste Seite

Das alles funktioniert gut mit Sortierung und Filterung auf der Gridview, aber wenn ich es paging die Grid-Seiten wie es sollte aber die Auslagerungsvorlage bleibt immer auf der ersten Seite (1 als aktiv anzeigen). Irgendwelche Ideen Leute? Hier einige meiner Code:

<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 habe ich versucht, mit autopaging auf der Datenquelle und ohne sie. Das hat nicht funktioniert. Wie gesagt, das Paging scheint zu funktionieren, die UI zeigt einfach nicht, was ich tun soll.

+0

Ich habe es tatsächlich herausgefunden. Es war dieser kleine Viewstate-Sauger auf der Gridview, der das Problem verursachte. Wenn diese Einstellung auf "false" gesetzt wurde, funktionierte es. –

Antwort

0

EnableViewState = "false" auf der GridView hat es funktioniert.

Verwandte Themen