2010-11-27 13 views
1

Ich habe eine GridView. Bei Ereignis _RowDataBound muss ich den zugrunde liegenden Wert aus jedem einzelnen Feld (ex let imagine FirstName) nehmen, wenden Sie einige Logik darauf an, und zeigen Sie das Feld ändern in ein Textfeld.Daten unter GridView

Mein Problem ist, ich habe nicht die Syntax, um die Werte mit der e.Row.DataItmem für eine einzelne Zeile verbunden zu bekommen.

Irgendeine Idee, wie man es macht? Bitte geben Sie mir ein Beispiel für Code. Ich habe diese Frage in der Vergangenheit gepostet, aber ohne die Antwort zu verstehen. Dank

switch (e.Row.RowType) 
     { 
      // In case type of row is DataRow (a data row of GridView) 
      case DataControlRowType.DataRow: 
       // What I add here? 
       break; 
     } 

Antwort

2

es hängt von den Eigenschaftsnamen des Objekts, das Sie als gridvieww Datenquelle verwendet, so dass, wenn Sie eine Spalte namens Vornamen haben, können Sie es wie folgt zugreifen:

DataRowView row = (DataRowView)e.Row.DataItem; 
string name = row["FirstName"].ToString(); 

ein besserer Ansatz Ich verwende immer, um das DataItem-Objekt selbst zu meiner gebundenen Klasse zu werfen. zum Beispiel, wenn die gridview Datenquelle ein List<Employee> ist, i wie folgt vor:

Employee item = (Employee) e.Row.DataItem; 

dann können Sie alle Eigenschaften zugreifen, um die Artikel

+0

Dank, habe ich mit dem ersten Code und ich erhalte eine Fehlermeldung Fehler Kann die Indizierung mit [] nicht auf einen Ausdruck vom Typ 'Objekt' anwenden \t .... irgendwelche Ideen ?? – GibboK

+0

im eigentlich ein vb.net Entwickler und in vb.net i wie folgt vorgehen, wenn Sie also diese übersetzen kann: Dim Name als String = e.Row.DataItem („Vorname“) –

+0

i in C# denke, es ist eine zusätzliche Besetzung dass getan werden muss –