Sort in GridView funktioniert nicht mehr nach Änderung von HeaderT

07/11/2007 - 11:29 von Jurahunter | Report spam
Hallo zusammen

Auf einer ASP.NET Seite habe ich ein sortierbares GridView mit BoundFields.
Soweit funktioniert alles bestens. Da die Applikation mehrsprachig sein muss,
möchte ich zur Laufzeit den HeaderText der einzelnen Spalten in der
ausgewàhlten Sprache anzeigen.

Wenn ich nun zur Laufzeit den HeaderText einer Spalte àndere, so wird danach
der HeaderText nicht mehr als Link, sondern als normaler Text angezeigt und
ich kann nicht mehr nach dieser Spalte sortieren.

Ich habe den Code für das Setzen des HeaderTexts bereits an folgenden
Stellen erfolglos platziert (der Text wird zwar jeweils richtig angezeigt,
aber es kann nicht mehr nach dieser Spalte sortiert werden):

- Page_Load
- GridView_RowCreated
- GridView_DataBinding
- GridView_DataBound
- GridView_RowDataBound

Besten Dank für Eure Tipps
 

Lesen sie die antworten

#1 Stefan Falz [MVP]
08/11/2007 - 08:36 | Warnen spam
Hallo ?,

"Jurahunter" schrieb
-^^^^^^^^^^

wàrs machbar, hier Deinen Vor- und Nachnamen reinzuschreiben? Danke :)

Auf einer ASP.NET Seite habe ich ein sortierbares GridView mit BoundFields.
Soweit funktioniert alles bestens. Da die Applikation mehrsprachig sein muss,
möchte ich zur Laufzeit den HeaderText der einzelnen Spalten in der
ausgewà¤hlten Sprache anzeigen.



Wo kommen denn deine Texte her? Resourcen? Datenbank? ...?

Wenn ich nun zur Laufzeit den HeaderText einer Spalte à¤ndere, so wird danach
der HeaderText nicht mehr als Link, sondern als normaler Text angezeigt und
ich kann nicht mehr nach dieser Spalte sortieren.



Poste doch mal ein Beispiel für deinen Code.

Ich habe den Code fà¼r das Setzen des HeaderTexts bereits an folgenden
Stellen erfolglos platziert (der Text wird zwar jeweils richtig angezeigt,
aber es kann nicht mehr nach dieser Spalte sortiert werden):



Wàre mir neu.

<asp:GridView ... AllowSorting="True">
...
<asp:BoundField SortExpression="Spaltenname1" ... />
<asp:BoundField SortExpression="Spaltenname2" ... />
...
</asp:GridView>

Public Sub Page_Load( ... ) Handles Me.Load

...

<GridView>.Columns( 0 ).HeaderText = "Abc"
<GridView>.Columns( 1 ).HeaderText = "Def"

If Not Page.IsPostBack Then
<GridView>.DataBind()
End if

End Sub

Funktioniert hier problemlos. Wichtig ist nur, dass der HeaderText vor (oder
wàhrend) des DataBinds gesetzt wird, sonst ist der Text der Headerzelle leer.

Tschau, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

Ähnliche fragen