GridView

fhr

Erfahrenes Mitglied
Hallo,

Folgendes Problem:
ich würde gerne Zeilen eines GridView je nach Benutzerauswahl mit Hilfe des 'dataformatstring' formatieren.
Das GridView wird durch ein DataSet gefüllt.

Das Problem ist, dass 'autogeneratecolumns' = true sein soll.

Also im Klartext:
Wo kann ich zur Laufzeit im Code den dataformatstring setzten?

Eine Alternative die für mich aber nicht in Frage kommt wäre das DataSet durchzugehen und das GridView von Hand zu füllen.
Bsp.:
Code:
BoundField bf;
bf.DataFormatString = "{0:#,##0 €}";

Es muss doch ein eine Möglichkeit geben wenn autogeneratecolumns = true ist !!?

Danke für die Hilfe im Voraus....

p.s.: Sorry für den nichts aussagenden Titel. Hab zu früh auf Speichern geklickt.
Kann man den nicht nachträglich umbenennen?
 
Ich bin mir nicht ganz sicher ob das funktioniert, aber wenn du die Methode CreateAutoGeneratedColumn überschreibst, dann könntest du da dein DataFormatString setzen

Code:
protected override AutoGeneratedField CreateAutoGeneratedColumn(AutoGeneratedFieldProperties fieldProperties)
{
   AutoGeneratedField field = base.CreateAutoGeneratedColumn(fieldProperties);
   StateBag sb = (StateBag)field.GetType().InvokeMember("ViewState",
      BindingFlags.GetProperty |
      BindingFlags.NonPublic |
      BindingFlags.Instance,
      null, field, new object[] {});
   sb["DataFormatString"] = "{0:N}"; //or the format string you prefer
   field.HtmlEncode=false;
   return field;
}
 
Hallo,

danke für die Antwort.

Diesen Blog hatte ich auch schon im Netz gefunden.
War heute Morgen nur zu blöd die Methode zu überschreiben :suspekt:

Hab mich jetzt nochmal dran gesetzt. Funktioniert wunderbar!

Dankeschön
 

Neue Beiträge

Zurück