C# Der Pager "paget" nicht wie er soll (Sharepoint)

Nero1

Captain Pro
Registriert
Nov. 2009
Beiträge
3.884
Hi,

hoffe ihr könnt mir wieder einmal helfen :)

Ich habe ein Webpart zur Durchsuchung einer bestimmten Liste und möchte ab einer Listengröße von 7 Einträgen den Pager verwenden, sprich:

Code:
this.spGrid = new SPGridView();
this.spGrid.AllowPaging = true;
this.spGrid.AutoGenerateColumns = false;
this.spGrid.PageSize = 7;
this.spGrid.EnableViewState = true;
this.spGrid.PageIndexChanging += new GridViewPageEventHandler(spGrid_PageIndexChanging);

Zusätzlich hab ich folgende Sachen drin:

Code:
this.spGrid.PagerSettings.Mode = PagerButtons.NumericFirstLast;
this.spGrid.PagerSettings.FirstPageText = "<< Anfang | ";
this.spGrid.PagerSettings.LastPageText = " | Ende >>";
this.spGrid.PagerSettings.Position = PagerPosition.TopAndBottom;
this.spGrid.PagerStyle.VerticalAlign = VerticalAlign.Middle;
this.spGrid.PagerSettings.Visible = true;

addGridColumns(); [COLOR="#FF0000"]-> hier unwichtig, nur der Vollständigkeit halber mit drin[/COLOR]

this.Controls.Add(this.spGrid);
spGrid.PagerTemplate = null;

Beides steht in der "protected override void CreateChildControls()". Sollte ja soweit stimmen oder?

Der EventHandler is Standard, also

Code:
void spGrid_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {            
            spGrid.PageIndex = e.NewPageIndex;
            spGrid.DataBind();
        }

Wenn ich nun aber auf z.B. Seite 2 gehe im Pager/Webpart dann zeigt es mir an, dass keine Einträge vorhanden sind zum anzeigen, obwohl eigentlich welche da sein müssten :(


Was mache ich falsch?
 
Verwendest du SPDataSource? Falls nicht würde ich das nehmen, falls du es schon verwendest, poste mal wie du es erzeugst.
 
Code:
protected SPDataSource getDatasource(SPList liste)
        {
            SPDataSource ds = new SPDataSource(liste);
            ds.DataSourceMode = SPDataSourceMode.List;
            String query = "";

            if (isTextWritten())
            {
                query =
                    "<View>" +
                         queryViewFields +
                        "<Query>" +
                            "<OrderBy>" +
                                "<FieldRef Name='Buch_x0020_ID' Ascending='True'/>" +
                            "</OrderBy>" +
                            "<Where>" +
                                "<Or>" +
                                    "<Contains>" +
                                        "<FieldRef Name='Titel1'/>" +
                                        "<Value Type='Text'>" + EingabeTitel + "</Value>" +
                                    "</Contains>" +
                                    "<Contains>" +
                                        "<FieldRef Name='Zusatz'/>" +
                                        "<Value Type='Text'>" + EingabeTitel + "</Value>" +
                                    "</Contains>" +
                                "</Or>" +
                            "</Where>" +
                        "</Query>" +
                    "</View>";
                ds.SelectCommand = query;
            }
            return ds;
        }
#

Kann es sein, dass beim Pagen die Datasource gar nicht mehr bereit steht und sich erst beim erneuten Klicken auf den Button richtig aktualisiert?
(Is nämlich der Witz an der Sache, nach dem Pagen und "keine Einträge" nochmal auf den Button gedrückt, Pager bleibt bei eins, "Seite" der Tabelle geht auf die richtige.)
 
Sieht eigentlich soweit ok aus. Wenn ich wieder an meinen Rechner komme werde ich das mal testen bzw. posten, wie ich das gemacht habe.
 
Danke dir schonmal. Ich kann dir auch mal mehr relevante Funktionen geben, wenn nicht gar fast das gesamte Webpart, sofern du das benötigst. Vielen Dank!

LG
 
Zurück
Oben