Sortieren von Daten in einem GridView-Webserversteuerelement
Aktualisiert: November 2007
Das GridView-Steuerelement stellt integrierte Sortierfunktionen bereit, sodass diese nicht programmiert werden müssen. Sie können die Sortierfunktionen des GridView-Steuerelements weiter anpassen, indem Sie die SortExpression-Eigenschaft der Spalten auf benutzerdefinierte Werte festlegen sowie das Sorting-Ereignis und das Sorted-Ereignis verwenden.
Arbeitsweise der Sortierung im GridView-Steuerelement
Das GridView-Steuerelement führt keine eigene Sortierung der Spalten durch, sondern greift auf das Datenquellensteuerelement zu, um die Sortierung durchzuführen. Das Steuerelement stellt die Benutzeroberfläche (UI) für die Sortierung zur Verfügung, wie zum Beispiel LinkButton-Steuerelemente, die am Anfang jeder Spalte des Datenblatts angezeigt werden. Das GridView-Steuerelement ist auf die Sortierfunktionen der Datenquelle angewiesen, an die es gebunden ist.
Wenn das angebundene Datenquellensteuerelement in der Lage ist, Sortieroperationen auszuführen, kann das GridView-Steuerelement mit dem Datenquellensteuerelement interagieren und sortierte Daten anfordern, indem es bei der Auswahl von Daten einen SortExpression an die Datenquelle übergibt. Nicht alle Datenquellensteuerelemente unterstützen die Sortierung; das XmlDataSource-Steuerelement unterstützt sie beispielsweise nicht. Wenn das Datenquellensteuerelement die Sortierung unterstützt, können die Sortierfunktionen durch die GridView genutzt werden. In der folgenden Liste werden die Datenquellensteuerelemente und die Konfiguration beschrieben, die erforderlich ist, damit die Sortierung unterstützt wird:
Die SqlDataSource-Steuerelemente und AccessDataSource-Steuerelemente können Sortieroperationen ausführen, wenn die DataSourceMode-Eigenschaft auf den Wert DataSet festgelegt ist oder die SortParameterName-Eigenschaft auf einen der Werte DataSet oder DataReader festgelegt ist.
DasObjectDataSource-Steuerelement kann Sortieroperationen ausführen, wenn dessen SortParameterName-Eigenschaft auf einen vom zugrunde liegenden Objekt unterstützten Wert festgelegt wird.
Sortiervorgang in GridView
Sie können das Standardsortierverhalten des GridView-Steuerelements aktivieren, indem Sie die AllowSorting-Eigenschaft auf den Wert true festlegen. Wenn diese Eigenschaft auf true festgelegt ist, gibt das GridView-Steuerelement am Anfang jeder Spalte ein LinkButton-Steuerelement aus. Zusätzlich legt des Steuerelement implizit die SortExpression-Eigenschaft jeder Spalte auf den Namen des Datenfelds fest, mit dem die Spalte verbunden ist. Enthält das Datenblatt zum Beispiel eine Spalte, die die Spalte City der Tabelle Employees aus der Northwind-Beispieldatenbank darstellt, wird die SortExpression-Eigenschaft dieser Spalte auf den Wert City festgelegt.
Zur Laufzeit könnnen die Benutzer auf das LinkButton-Steuerelement am Anfang einer Spalte klicken, um diese Spalte zu sortieren. Beim Klicken auf den Link führt die Seite ein Postback aus und löst das Sorting-Ereignis des GridView-Steuerelements aus. Der Sortierausdruck wird als Teil der Ereignisargumente übergeben. Standardmäßig handelt es sich dabei um den Namen der Datenspalte. Das Standardverhalten des Sorting-Ereignisses besteht darin, dass der Sortierausdruck vom GridView-Steuerelement an das Datenquellensteuerelement übergeben wird. Anschließend führt das Datenquellensteuerelement unter Berücksichtigung der vom Datenblatt übergebenen Sortierparameter die Auswahlabfrage oder -methode aus.
Nachdem die Abfrage ausgeführt wurde, wird das Sorted-Ereignis des Datenblatts ausgelöst. Mit diesem Ereignis können Sie nach der Abfrage Anweisungen wie zum Beispiel das Anzeigen einer Statusmeldung ausführen. Schließlich bindet das Datenquellensteuerelement das GridView-Steuerelement an das umsortierte Ergebnis der Abfrage.
Das GridView-Steuerelement überprüft nicht, ob das Datenquellensteuerelement Sortieroperationen unterstützt. Es übergibt stets den Sortierausdruck an die Datenquelle. Wenn das Datenquellensteuerelement die Sortierung nicht unterstützt und eine Sortieroperation durch das GridView-Steuerelement ausgeführt wird, wird vom GridView-Steuerelement eine NotSupportedException-Ausnahme ausgelöst. Sie können diese Ausnahme mit einem Handler für das Sorting-Ereignis abfangen und die Datenquelle überprüfen, um zu bestimmen, ob die Sortierung unterstützt wird. Alternativ können Sie eigene Sortierfunktionen verwenden.
Steuern der Sortierung einzelner Spalten
Durch das Festlegen der AllowSorting-Eigenschaft des Datenblatts können Sie Spalten standardmäßig sortieren. Sie können die Sortierung für einzelne Felder deaktivieren (z. B. für das BoundField-Feld oder das TemplateField-Feld). Legen Sie dazu den Wert der SortExpression-Eigenschaft der jeweiligen Spalte auf eine leere Zeichenfolge ("") fest.
Benutzerdefinierte Sortierung
Wenn das Standardsortierverhalten Ihren Anforderungen nicht genügt, können Sie das Sortierverhalten des Datenblatts anpassen. Die grundlegende Technik für die benutzerdefinierte Sortierung stellt die Behandlung des Sorting-Ereignisses dar. Im Handler können Sie folgende Aktionen durchführen:
Den Sortierausdruck anpassen, der an das Datenquellensteuerelement übergeben wird. Standardmäßig ist der Sortierausdruck der Name einer einzelnen Spalte. Sie können den Sortierausdruck im Ereignishandler ändern. Um zum Beispiel nach zwei Spalten zu sortieren, können Sie einen Sortierausdruck erstellen, der beide Spalten enthält. Der geänderte Sortierausdruck kann dann dem Datenquellensteuerelement übergeben werden. Weitere Informationen finden Sie in den Ausführungen zur GridViewSortEventArgs.SortExpression-Eigenschaft.
Eigene Sortierfunktionen erstellen. Beim Verwenden einer Datenquelle, die die Sortierung nicht unterstützt, können Sie die Sortierung in Ihrem eigenen Code durchführen und das Datenblatt anschließend an die sortierten Daten binden.
Siehe auch
Konzepte
Übersicht über datengebundene ASP.NET-Webserversteuerelemente