Announcement

Collapse
No announcement yet.

DataGrid und AllowPaging="true"???

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • DataGrid und AllowPaging="true"???

    Hallo zusammen,

    ich fülle mein DropDownList mit den Daten aus der Datenbank.
    Dann, wenn der Benutzer etwas in der DropDownList ausgewählt und anschließend auf die Schaltfläche "Senden" klickt, wird ein DataGrid mit den entschprechenden Daten ausgefüllt. Die erste Seite des DataGrides wird angezeigt. Wenn ich dann auf den Hyperlink "2" klicke, wird einfach die leere Seite angezeigt. Um die zweite Seite des DataGrides anzeigen zu können, muss ich auf die Schaltfläche "Senden" klicken(???). Warum, verstehe ich nicht. Die gleiche funktion funktioniert normal in der Seite, wo ich den DataGrid mit den Daten direkt aus der Datenbank fülle, d.h. dann, wenn ich nicht nur entschprechende Zeilen bekommen will.

    <aspataGrid id="DataGridTest" runat="server"
    border="0"
    bordercolor="white"
    GridLines="vertical"
    cellpadding="4"
    cellspacing="0"
    width="100%"
    Font-Names="Arial"
    Font-Size="10pt"
    ShowHeader="false"
    ShowFooter="false"
    ItemStyle-Backcolor="white"
    AlternatingItemStyle-BackColor="white"
    AutoGenerateColumns="False"
    AllowPaging="true"
    PageSize="3"
    PagerStyle-Mode="NumericPages"
    OnPageIndexChanged="DataGridTest_PageIndexChanged" >

    Sub DataGridTest_PageIndexChanged(obj as object, e as DataGridPageChangedEventArgs)
    DataGridTest.CurrentPageIndex = e.NewPageIndex
    DataGridTest.DataBind()
    End Sub

    Gruß
    Leonid

  • #2
    Hallo,

    da das Problem nur Projektbezogen auftritt, kann ich nur allgemeine Hinweise beisteuern. Das DataGrid unterstützt für das Paging gleich 3 Techniken: <br>
    1. Default Paging mit Standard-Button <br>
    2. Default Paging mit eigenen Button <br>
    3. Custom Paging <br>
    Beim Default-Paging müssen alle Datensätze in der Datenmenge sein, damit das DataGrid die Datensätze für die aktuelle Seite ermitteln kann. Beim Custom Paging entfällt dieser Nachteil, da die Anwendung nur noch die Datensätze auf einmal laden muss, die angezeigt werden. Eventuell beseitigt das Custom Paging das Problem, da man hier mehr Kontrolle über das "Wie" hat:

    - Eigenschaft <b>AllowPaging</b> auf True (Property Builder) <br>
    - Eigenschaft <b>AllowCustomPaging</b> auf True <br>
    - Eigenschaft <b>VirtualItemCount</b> wird mit der Gesamtzahl aller Datensätze initialisiert, so dass das DataGrid <b>PageCount</b> korrekt setzen kann (SELECT COUNT(*) FROM Tabelle WHERE...) <br>
    - DataSet nur mit den Daten füllen, die auf dieser Seite sichtbar sein sollen:<br>
    a) DataAdapter.Fill: DataAdapter1.Fill(DataSet11, DataGrid1.CurrentPageIndex * DataGrid1.PageSize, DataGrid1.PageSize, "TableName"), <br>oder <br>
    b) SELECT TOP x-Abfrage (ist effektiver, da der SQL Server nicht immer die vollständige Ergebnismenge der SELECT-Abfrage aufbauen muss

    Comment

    Working...
    X