Paging in einem DetailsView-Webserversteuerelement
Aktualisiert: November 2007
Das ASP.NET DetailsView-Steuerelement verfügt über eine integrierte Pagingfunktion, mit der Benutzer durch einzelne Datensätze blättern können. Mit dem Steuerelement können Sie auch die Pagingbenutzeroberfläche anpassen. Im DetailsView-Steuerelement entspricht eine Datenseite einer einzelnen gebundenen Zeile.
Verwenden von Paging im DetailsView-Steuerelement
Das DetailsView-Steuerelement unterstützt das Paging von Datensätzen der eigenen Datenquelle. Um Paging zu aktivieren, legen Sie die AllowPaging-Eigenschaft auf true fest. Die vom DetailsView-Steuerelement angeforderte Seitengröße ist immer eine Zeile.
Wenn das DetailsView-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 DetailsView-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 DetailsView-Steuerelement nicht zur Verfügung. Wenn Sie z. B. ein SqlDataSource-Steuerelement verwenden und dessen DataSourceMode-Eigenschaft auf DataReader festgelegt haben, kann das DetailsView-Steuerelement die Pagingfunktion nicht implementieren. |
Einige Datenquellen, wie das ObjectDataSource-Steuerelement, bieten erweiterte Pagingfähigkeiten. In diesen Fällen macht sich das DetailsView-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 Gesamtzeilenanzahl 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, die vom DetailsView-Steuerelement zum Abrufen einer Datenseite angefordert werden müssen, minimiert. Wenn das Datenquellenobjekt die Gesamtanzahl der Zeilen bereitstellt, wird vom DetailsView-Steuerelement nur jeweils eine Zeile pro Seite angefordert. Wenn die Gesamtzeilenanzahl nicht bereitgestellt wird, müssen vom DetailsView-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 DetailsView-Steuerelement auf vielfältige Weise anpassen.
Pagingmodi
Mit der PagerSettings-Eigenschaft können Sie die Darstellung der vom DetailsView-Steuerelement generierten Pagingbenutzeroberfläche anpassen. Dazu müssen Sie die AllowPaging-Eigenschaft auf true festlegen. Das DetailsView-Steuerelement kann Richtungssteuerelemente zur Vorwärts- und Rückwärtsnavigation sowie numerische Steuerelemente anzeigen, über die ein Benutzer direkt zu einer bestimmten Seite wechseln kann.
Die PagerSettings-Eigenschaft des DetailsView-Steuerelements wird auf eine PagerSettings-Klasse festgelegt. Sie können den Pagingmodus anpassen, indem Sie die Mode-Eigenschaft des DetailsView-Steuerelements auf einen PagerButtons-Wert festlegen. Sie können den Modus für die Pagingbenutzeroberfläche beispielsweise folgendermaßen anpassen:
DetailsView1.PagerSettings.Mode = PagerButtons.NextPreviousFirstLast
Folgende Modi stehen zur Auswahl:
Darstellung von Pagingsteuerelementen
Das DetailsView-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 DetailsView-Steuerelements auf NextPrevious festlegen und Sie 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 für die Navigationsschaltflächen (Anfang, Ende, Rückwärts, Vorwärts) Bild-URLs festlegen.
Sie können die Darstellung der Pagingbefehle anpassen, indem Sie die PagerStyle-Eigenschaft des DetailsView-Steuerelements auf einen TableItemStyle-Wert festlegen.
Datenpagingvorlage
Wenn Sie die AllowPaging-Eigenschaft des DetailsView-Steuerelements auf true festlegen, fügt das DetailsView-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 DetailsView-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>DetailsView Example</title>
</head>
<body>
<form id="form1" >
<h3>DetailsView Example</h3>
<table cellspacing="10">
<tr>
<td valign="top">
<asp:DetailsView ID="EmployeesDetailsView"
DataSourceID="EmployeesSqlDataSource"
AutoGenerateRows="false"
AllowPaging="true"
DataKeyNames="EmployeeID"
>
<HeaderStyle forecolor="white" backcolor="Blue" />
<Fields>
<asp:BoundField Datafield="EmployeeID" HeaderText="Employee ID" ReadOnly="true"/>
<asp:BoundField Datafield="FirstName" HeaderText="First Name"/>
<asp:BoundField Datafield="LastName" HeaderText="Last Name"/>
</Fields>
<PagerSettings Mode="NextPreviousFirstLast"
FirstPageText="<<"
LastPageText=">>"
PageButtonCount="1"
Position="Top"/>
</asp:DetailsView>
</td>
</tr>
</table>
<asp:SqlDataSource ID="EmployeesSqlDataSource"
SelectCommand="SELECT * FROM [Employees]"
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>DetailsView Example</title>
</head>
<body>
<form id="form1" >
<h3>DetailsView Example</h3>
<table cellspacing="10">
<tr>
<td valign="top">
<asp:DetailsView ID="EmployeesDetailsView"
DataSourceID="EmployeesSqlDataSource"
AutoGenerateRows="false"
AllowPaging="true"
DataKeyNames="EmployeeID"
>
<HeaderStyle forecolor="white" backcolor="Blue" />
<Fields>
<asp:BoundField Datafield="EmployeeID" HeaderText="Employee ID" ReadOnly="true"/>
<asp:BoundField Datafield="FirstName" HeaderText="First Name"/>
<asp:BoundField Datafield="LastName" HeaderText="Last Name"/>
</Fields>
<PagerSettings Mode="NextPreviousFirstLast"
FirstPageText="<<"
LastPageText=">>"
PageButtonCount="1"
Position="Top"/>
</asp:DetailsView>
</td>
</tr>
</table>
<asp:SqlDataSource ID="EmployeesSqlDataSource"
SelectCommand="SELECT * FROM [Employees]"
connectionstring="<%$ ConnectionStrings:NorthwindConnection %>"
RunAt="server"/>
</form>
</body>
</html>