Freigeben über


Paging in einem FormView-Webserversteuerelement

Aktualisiert: November 2007

Das ASP.NET FormView-Steuerelement verfügt über eine integrierte Pagingfunktion, mit der Benutzer einzelne Datensätze anzeigen können. Mit dem Steuerelement können Sie auch die Pagingbenutzeroberfläche anpassen. Im FormView-Steuerelement entspricht eine Seite genau einem gebundenen Datensatz.

Verwenden von Paging im FormView-Steuerelement

Das FormView-Steuerelement unterstützt das Paging von Elementen der eigenen Datenquelle. Um Paging zu aktivieren, legen Sie die AllowPaging-Eigenschaft auf true fest. Die Seitengröße für das FormView-Steuerelement beträgt stets eine Zeile pro Seite.

Wenn das FormView-Steuerelement an ein Datenquellensteuerelement oder eine sonstige Datenstruktur (inklusive Datensets) gebunden ist, von der die ICollection-Schnittstelle implementiert wird, ruft das Steuerelement alle Datensätze aus der Datenquelle ab, zeigt den Datensatz für die aktuelle Seite an und verwirft den Rest. Wenn der Benutzer auf eine andere Seite wechselt, wiederholt das FormView-Steuerelement den Prozess, und es wird ein anderer Datensatz angezeigt.

Hinweis:

Wenn die Datenquelle die ICollection-Schnittstelle nicht implementiert, steht die Pagingfunktion für das FormView-Steuerelement nicht zur Verfügung. Wenn Sie z. B. ein SqlDataSource-Steuerelement verwenden und dessen DataSourceMode-Eigenschaft auf DataReader festgelegt haben, kann das FormView-Steuerelement die Pagingfunktion nicht implementieren.

Einige Datenquellen, wie das ObjectDataSource-Steuerelement, bieten erweiterte Pagingfähigkeiten. In diesen Fällen macht sich das FormView-Steuerelement die erweiterten Fähigkeiten der Datenquelle zunutze, um beim Paging einen schnelleren Zugriff und eine größere Flexibilität zu erzielen. Die Anzahl der angeforderten Zeilen ist davon abhängig, ob die Datenquelle den Abruf der Gesamtanzahl der Zeilen unterstützt.

Hinweis:

Wenn Sie eine Datenquelle erstellen (z. B. wenn Sie eine SelectCountMethod-Methode im Quellobjekt für das ObjectDataSource-Steuerelement implementieren) wird dringend empfohlen, dass beim Bereitstellen von Datenseiten von Ihrer Datenquelle die Gesamtzeilenanzahl zurückgegeben wird. Dadurch wird die Anzahl von Datensätzen minimiert, die vom FormView-Steuerelement zum Abrufen einer Datenseite angefordert werden müssen. Wenn das Datenquellenobjekt die Gesamtanzahl der Zeilen bereitstellt, wird vom FormView-Steuerelement nur jeweils eine Zeile pro Seite angefordert. Wenn die Gesamtzeilenanzahl nicht bereitgestellt wird, müssen vom FormView-Steuerelement alle Zeilen von der Datenquelle angefordert werden (beginnend mit der Zeile, die der ersten angeforderten Datenseite entspricht) und alle Zeilen mit Ausnahme der angezeigten Zeile verworfen werden.

Anpassen der Pagingeinstellungen und der Pagingbenutzeroberfläche

Sie können die Benutzeroberfläche für das Paging in einem FormView-Steuerelement auf vielfältige Weise anpassen.

Pagingmodi

Mit der PagerSettings-Eigenschaft können Sie die Darstellung der vom FormView-Steuerelement generierten Pagingbenutzeroberfläche anpassen. Dazu müssen Sie die AllowPaging-Eigenschaft auf true festlegen. Das FormView-Steuerelement kann Richtungssteuerelemente für die Vorwärts- und Rückwärtsnavigation sowie numerische Steuerelemente anzeigen, über die die Benutzer direkt zu einer bestimmten Seite wechseln können.

Die PagerSettings-Eigenschaft des FormView-Steuerelements wird auf eine PagerSettings-Klasse festgelegt. Sie können den Pagingmodus anpassen, indem Sie die Mode-Eigenschaft des FormView-Steuerelements auf einen PagerButtons-Wert festlegen. Sie können den Modus für die Pagingbenutzeroberfläche beispielsweise folgendermaßen anpassen:

FormView1.PagerSettings.Mode = PagerButtons.NextPreviousFirstLast

Folgende Modi stehen zur Auswahl:

Darstellung von Pagingsteuerelementen

Das FormView-Steuerelement verfügt über eine Vielzahl von Eigenschaften, mit denen Sie Text und Bilder für die verschiedenen Pagingmodi anpassen können. Wenn Sie z. B. den Pagingmodus eines FormView-Steuerelements auf NextPrevious festlegen und den angezeigten Text anpassen möchten, können Sie die NextPageText-Eigenschaft und die PreviousPageText-Eigenschaft auf die gewünschten Werte festlegen. Standardmäßig werden die PreviousPageText-Eigenschaft und die NextPageText-Eigenschaft auf "<" bzw. ">" festgelegt.

Sie können auch Bilder verwenden, um die Darstellung der Pagingsteuerelemente anzupassen. Über entsprechende Eigenschaften der PagerSettings-Klasse können Sie Bild-URLs für die Navigationsschaltflächen (Anfang, Ende, Rückwärts, Vorwärts) festlegen.

Sie können die Darstellung der Pagingbefehle anpassen, indem Sie die PagerStyle-Eigenschaft des FormView-Steuerelements auf einen TableItemStyle-Wert festlegen.

Datenpagingvorlage

Wenn Sie die AllowPaging-Eigenschaft desFormView-Steuerelements auf true festlegen, fügt das FormView-Steuerelement automatisch Benutzeroberflächensteuerelemente für das Paging hinzu. Sie können die Benutzeroberfläche für das Paging anpassen, indem Sie eine PagerTemplate-Vorlage hinzufügen. Um anzugeben, welche Pagingoperation ausgeführt werden soll, fügen Sie der Vorlage ein Button-Steuerelement hinzu. Legen Sie anschließend dessen CommandName-Eigenschaft auf Page und die CommandArgument-Eigenschaft auf einen der beiden folgenden Werte fest:

  • First   Navigieren zur ersten Seite

  • Last   Navigieren zur letzten Seite

  • Prev   Navigieren zur vorherigen Seite

  • Next   Navigieren zur nächsten Seite

  • Eine Zahl   Navigieren zu einer bestimmten Seite

Das folgende Codebeispiel zeigt ein FormView-Steuerelement, das für die Pagingfunktion konfiguriert wurde.

<%@ Page language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head >
    <title>FormView Example</title>
</head>
<body>
    <form id="form1" >
      <h3>FormView Example</h3>
        <table cellspacing="10"> 
          <tr>               
            <td valign="top">

              <asp:FormView ID="ProductsFormView"
                DataSourceID="ProductsSqlDataSource"
                AllowPaging="true"
                >

                <HeaderStyle forecolor="white" backcolor="Blue" />                

                <ItemTemplate>
                  <table>
                    <tr>
                      <td align="right"><b>Product ID:</b></td>
                      <td><asp:Label id="ProductIDLabel"  Text='<%# Eval("ProductID") %>' /></td>
                    </tr>
                    <tr>
                      <td align="right"><b>Product Name:</b></td>
                      <td><asp:Label id="ProductNameLabel"  Text='<%# Eval("ProductName") %>' /></td>
                    </tr>
                    <tr>
                      <td align="right"><b>Category ID:</b></td>
                      <td><asp:Label id="CategoryIDLabel"  Text='<%# Eval("CategoryID") %>' /></td>
                    </tr>
                    <tr>
                      <td align="right"><b>Quantity Per Unit:</b></td>
                      <td><asp:Label id="QuantityPerUnitLabel"  Text='<%# Eval("QuantityPerUnit") %>' /></td>
                    </tr>
                    <tr>
                      <td align="right"><b>Unit Price:</b></td>
                      <td><asp:Label id="UnitPriceLabel"  Text='<%# Eval("UnitPrice") %>' /></td>
                    </tr>
                  </table>                 
                </ItemTemplate>

                <PagerTemplate>
                  <table>
                    <tr>
                      <td><asp:LinkButton ID="FirstButton" CommandName="Page" CommandArgument="First" Text="<<" RunAt="server"/></td>
                      <td><asp:LinkButton ID="PrevButton"  CommandName="Page" CommandArgument="Prev"  Text="<"  RunAt="server"/></td>
                      <td><asp:LinkButton ID="NextButton"  CommandName="Page" CommandArgument="Next"  Text=">"  RunAt="server"/></td>
                      <td><asp:LinkButton ID="LastButton"  CommandName="Page" CommandArgument="Last"  Text=">>" RunAt="server"/></td>
                    </tr>
                  </table>
                </PagerTemplate>

              </asp:FormView>

            </td>
          </tr>
        </table>

        <asp:SqlDataSource ID="ProductsSqlDataSource" 
          SelectCommand="SELECT * FROM [Products]" 
          connectionstring="<%$ ConnectionStrings:NorthwindConnection %>" 
          RunAt="server"/>

      </form>
  </body>
</html>
<%@ Page language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head >
    <title>FormView Example</title>
</head>
<body>
    <form id="form1" >
      <h3>FormView Example</h3>
        <table cellspacing="10"> 
          <tr>               
            <td valign="top">

              <asp:FormView ID="ProductsFormView"
                DataSourceID="ProductsSqlDataSource"
                AllowPaging="true"
                >

                <HeaderStyle forecolor="white" backcolor="Blue" />                

                <ItemTemplate>
                  <table>
                    <tr>
                      <td align="right"><b>Product ID:</b></td>
                      <td><asp:Label id="ProductIDLabel"  Text='<%# Eval("ProductID") %>' /></td>
                    </tr>
                    <tr>
                      <td align="right"><b>Product Name:</b></td>
                      <td><asp:Label id="ProductNameLabel"  Text='<%# Eval("ProductName") %>' /></td>
                    </tr>
                    <tr>
                      <td align="right"><b>Category ID:</b></td>
                      <td><asp:Label id="CategoryIDLabel"  Text='<%# Eval("CategoryID") %>' /></td>
                    </tr>
                    <tr>
                      <td align="right"><b>Quantity Per Unit:</b></td>
                      <td><asp:Label id="QuantityPerUnitLabel"  Text='<%# Eval("QuantityPerUnit") %>' /></td>
                    </tr>
                    <tr>
                      <td align="right"><b>Unit Price:</b></td>
                      <td><asp:Label id="UnitPriceLabel"  Text='<%# Eval("UnitPrice") %>' /></td>
                    </tr>
                  </table>                 
                </ItemTemplate>

                <PagerTemplate>
                  <table>
                    <tr>
                      <td><asp:LinkButton ID="FirstButton" CommandName="Page" CommandArgument="First" Text="<<" RunAt="server"/></td>
                      <td><asp:LinkButton ID="PrevButton"  CommandName="Page" CommandArgument="Prev"  Text="<"  RunAt="server"/></td>
                      <td><asp:LinkButton ID="NextButton"  CommandName="Page" CommandArgument="Next"  Text=">"  RunAt="server"/></td>
                      <td><asp:LinkButton ID="LastButton"  CommandName="Page" CommandArgument="Last"  Text=">>" RunAt="server"/></td>
                    </tr>
                  </table>
                </PagerTemplate>

              </asp:FormView>

            </td>
          </tr>
        </table>

        <asp:SqlDataSource ID="ProductsSqlDataSource" 
          SelectCommand="SELECT ProductID, ProductName, CategoryID, QuantityPerUnit, UnitPrice FROM [Products]" 
          connectionstring="<%$ ConnectionStrings:NorthwindConnection %>" 
          RunAt="server"/>

      </form>
  </body>
</html>

Siehe auch

Konzepte

Übersicht über das FormView-Webserversteuerelement