Mein Ziel: Ich möchte in einer asp.net Seite ein Gridview haben, welches zur Laufzeit an Daten gebunden wird und sortierbare Spalten hat, die im Header mit kleinen Grafiken oder auch erstmal nur Farben ausgestattet sind, die die sortierte Spalte und die Richtung anzeigen. Mein Problem: Nachdem ich die Sortierung erfolgreich implementiert habe, bekomme ich die grafische Kennzeichnung der Spaltensortierung nicht zum Laufen. Ich habe diverse Artikel gefunden, die die Eigenschaften SortedDescendingHeaderStyle bzw. SortedAscendingHeaderStyle erläutern, zB: http://www.4guysfromrolla.com/articles/020310-1.aspx, dies funktioniert jedoch nicht. Im HTML der erzeugten Seite finde ich die von mir erwünschten css-Klassen oder Hintergrundfarben niemals wieder.
Laut Artikel gibt es Eigenschaften, die direkt im GridView Tag zu verwenden sind wie:
SortedAscendingHeaderStyle-BackColor="Green"
Andererseits gibt es auch Eigenschaften des Grids die als eigenständige Tags zwischen <GridView></GridView> eingetragen werden. Ich habe alles versucht, es funktioniert nicht.
hat das nicht geklappt mit den 100 Punkten, weil ich keine positive Bewertung bekommen habe? Und viel wichtiger: Hat Dir meine Antwort in irgendeiner Weise geholfen?
Auf die Beantwortung dieser Frage war ein Kopfgeld in Höhe von 100 Reputationspunkten ausgesetzt.
Das Kopfgeld wurde bereits vergeben.
1 Antwort
1
Hallo,
das ist leider sehr häufig der Fall, wenn man deklarativen Code mit Codebehind mischt, dass einige Aspekte nicht mehr funktionieren. Ich vermute mal, dass der interpreter des deklarativen Code nicht mitbekommt, dass das Grid nun in einem sortierten Zustand vorliegt, weil Du es im codebehind sortierst.
Das bedeutet, dass Du das Markieren der Zeile ebenfalls in den Codebehind auslagern musst.
Ich denke Du musst das Event GridView1_RowCreated eingreifen und mit e.Rows.Cells[IndexOfSortingCell] die Spalte einzelnd anpassen. Die Spalte musst Du Dir natürlich vorher im Sorting Event merken.
hat das nicht geklappt mit den 100 Punkten, weil ich keine positive Bewertung bekommen habe? Und viel wichtiger: Hat Dir meine Antwort in irgendeiner Weise geholfen?
Gruß