Gridview DataBind Problem

01/12/2008 - 21:40 von Alexander Szigetvary | Report spam
Hi NG!

Vielleicht (hoffentlich) stehe ich gerade auf der Leitung.
Ich habe ein Gridview mit ein paarBoundfields und zwei Templatefields mit
einem Radiobutton drin.
Ich habe einen Button auf dessen Click-Ereignis ich reagieren möchte.
Ursprünglich fülle ich das gridView über ein Dataset. Ich habe auch ein paar
ausgeblendete Spalten, weil ich gehofft habe, dass ich mir da ein paar Werte
verstecken kann. Nachdem Postback, wenn ich ins Click-Ereignis komme, lade
ich das Dataset frisch und weise es dem gridview als Datasource zu. Bis
dahin ist die Welt noch in Ordnung. Doch mit dem Databind verleiren dann
meine Radiobuttons die vorher gewàhlten Werte. Zudem sind alle Werte in den
ausgeblendeten Spalten leer. Dass die nicht zum Client geschickt werden,
verstehe ich ja noch, aber warum die leer sind, wàhrend das Objekt am Server
lebt, verstehe ich überhaupt nicht.

Kann mir jemand da einen Tipp geben.

Danke
Alex
 

Lesen sie die antworten

#1 Patrick Finger
02/12/2008 - 08:34 | Warnen spam
Hallo Alex

Kann sein dass ich Dein Problem nicht richtig verstehe..

Ursprünglich fülle ich das gridView über ein Dataset. Ich habe auchein
paar ausgeblendete Spalten, weil ich gehofft habe, dass ich mir da ein
paar Werte verstecken kann.



Dafür solltest Du den vorgesehenen Mechanismus: DataKeyNames verwenden.

im Grid zB: DataKeyNames="Mail"

im Eventhandler:
int index = Convert.ToInt32(e.CommandArgument);
DataKey dKey = grd_friends.DataKeys[index];
string sMail = dKey.Value.ToString();

Nachdem Postback, wenn ich ins
Click-Ereignis komme, lade ich das Dataset frisch und weise es dem
gridview als Datasource zu.



Wieso denn das? Es sollte ausreichen, das GridView einmalig zu befüllen,
zB im PageLoad mittels
if (!IsPostBack) {
FillGridView();
}

verleiren dann meine Radiobuttons die vorher gewàhlten
Werte. Zudem sind alle Werte in den ausgeblendeten Spalten leer.



Logische Konsequenz.. Wenn Du das Whiteboard im Sitzungszimmer löschst
und neu beschreibst, dann siehst Du ja auch nicht mehr wo in Deiner
letzen Version die Markierungen waren.


Fülle das Grid nur einmalig,
Verwende DataKeyNames,
meld Dich nochmals wenns nicht hinhaut.

Gruss

Ähnliche fragen