6 Stimmen

ASP.net Gridview Paging funktioniert nicht im UpdatePanel

Obwohl ähnliche Fragen schon oft gestellt wurden, ist die Frage immer noch ungelöst. Hier ist die Frage: Ich habe eine GridView die in einem Tab-Container enthalten ist AJAX Kontrolle, die selbst innerhalb einer UpdatePanel . Gridview funktioniert hervorragend und die entsprechenden Methoden werden genau abgefeuert, aber wenn ich die paging (z. B.) nachdem ich auf Seite 2 geklickt habe, wird die GridView versteckt sich. hier ist mein PageIndexChanging() Methode:

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    GridView1.PageIndex = e.NewPageIndex;        
    GridView1.DataBind();
    UpdatePanel2.Update();        
}

Warum Paging Ursachen hat GridView nicht mehr richtig funktioniert? Was kann ich tun?

7voto

Farshid Punkte 4896

Die Lösung besteht darin, dass Sie den Datensatz, der zum Auffüllen der Gitteransicht verwendet wird, jedes Mal neu füllen sollten, wenn der Seitenindex geändert wird. Auf diese Weise können Sie sicherstellen, dass bei jedem einzelnen Postback, der durch die Seitenzahl des Gridviews ausgelöst wurde, die Ergebnisse aufgefüllt werden.

4voto

Brad Christie Punkte 98327

Weitere Forschung:

http://msdn.microsoft.com/en-us/library/cc295545.aspx

Steuerelemente, die nicht mit UpdatePanel-Steuerelementen kompatibel sind

Die folgenden ASP.NET-Steuerelemente sind nicht mit seitenweisen Aktualisierungen kompatibel und daher nicht für die Verwendung in einem UpdatePanel-Steuerelement vorgesehen:

  • GridView- und DetailsView-Steuerelemente, wenn ihre EnableSortingAndPagingCallbacks-Eigenschaft auf true gesetzt ist. Der Standardwert ist false.

4voto

Jay Punkte 41

Ich habe gerade den obigen Code ausprobiert. Ich hatte dasselbe Problem und jetzt funktioniert es einwandfrei.

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) 
{ 
    GridView1.PageIndex = e.NewPageIndex;         
    GridView1.DataBind(); 
    //  UpdatePanel2.Update();   <-- Remove this line from your code.
} 

Ich habe GridView innerhalb Update-Panel. Haben Sie Ihr Ereignis PageIndexChanging auch in Ihre .aspx-Datei geschrieben?

Ich hoffe, das hilft.

2voto

Loai Hazima Punkte 21

Ich hatte das gleiche Problem, das Ändern der updatepanel Eigenschaft UpdateMode="Conditional" zu UpdateMode="Always" und das Setzen der Eigenschaft ChildrenAsTriggers="true" löste das Problem für mich.

1voto

Sergio Ramirez Punkte 680

Dazu müssen Sie die Datenquelle im Ereignis für die Änderung des Seitenindex neu festlegen. Die Leistung wird geringer sein, aber das ist die Art und Weise, wie Sie es funktionieren lassen können.

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    GridView1.DataSource = ;//Set again the datasource
    GridView1.PageIndex = e.NewPageIndex;
    GridView1.DataBind();
    UpdatePanel2.Update();
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X