ASP.NET – Stolperfalle Gridview sortieren

Achtung, diesen Beitrag schrieb ich vor über 13 Jahren. Beachte, dass sich in der Zeit viel geändert haben kann und wird! Nicht alles lässt sich immer noch so anwenden, manches passt auch gar nicht mehr.

So ein Gridview ist schon ein tolles Control.

Einfach die passende Datenquelle aktiviert, dann Paging und Sortierung aktivieren und alles ist funktioniert prächtig und sieht professionell aus.

Allerdings bin ich auf ein Problem gestoßen. Ich habe Spalten in meinem Gridview die ich per Templatefield erzeugt, um z.B. eine Grafik anzuzeigen. Da die Grafiken Werte darstellen, möchte ich auch eine Sortierung ermöglichen. Ich habe z.B. die Werte 1-3, die werden mit Kreisen in den Farben Rot, Gelb, Grün dargestellt. Aufsteigen sortiert würde bedeuten erst Grün dann Gelb und als letztes Rot, absteigend wäre dann umgekehrt.

Bei einem Templatefield muss man gesondert angeben nach welchem Wert sortiert werden soll. Dies habe ich mittels folgender Codezeile getan.

<asp:TemplateField SortExpression="uebID">

Leider konnte ich dann immer noch nicht sortieren. Wo lag das Problem? Nach verzweifelter Suche hab ich heraus gefunden, das ASP.NET nur solche TemplateFields sortiert, die kein HeaderTemplate besitzen. Brauch ich auch nicht, ich will ja nur den Inhalt der Spalten anpassen und nicht den Inhalt der Kopfzeile. Also überall HeaderTemplate entfernt. Damit die Spalte aber trotzdem eine Überschrift besitzt habe ich die Befehlszeile von oben wie folgt angepasst:

<asp:TemplateField SortExpression="uebID" HeaderText="Priorität">

Siehe da, das Sortieren funktioniert ohne Probleme!

Achtung, diesen Beitrag schrieb ich vor über 13 Jahren. Beachte, dass sich in der Zeit viel geändert haben kann und wird! Nicht alles lässt sich immer noch so anwenden, manches passt auch gar nicht mehr.

About chaosblog

One thought on “ASP.NET – Stolperfalle Gridview sortieren

  1. Hi,

    SortExpression=“uebID”

    ist uebID ein Label oder ist uebID eine Datenbankexpression.
    Ich will genau das gleiche machen nur das die Bilder (Ampeln) bei mir dynamisch durch errechnete Werte angezeigt werden.
    Ein Sortieren wäre mir auch wichtig – wie ich aber so gelesen habe wird es nur mit Datenbankexpressions also Zellinhalten einer Datenbank die ich mit eval oder bind angegeben habe, funktionieren.

    Wenn du mich eines besseren belehren könntest wäre ich dankbar.

    (einfach mal das Codesnippet zeigen was uebID in deinem Fall ist)

    Thx
    Marcus

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.