Frage

Ich habe folgendes Objekt:

CrossTabDataObject
{
   string RowName{get;set;};
   int RowId{get;set;}
   List<string> CellContents = new List <string>();
   //Constructor..... etc.

}

Ich baue eine dynamische Kreuztabellen- Gitter in asp.net mit Gridview 3.5

Ich möchte binden an CellContents [0] für dynamische Spalte 1, CellContents [1] für die dynamische Spalte 2 (dynamische Spalte 0 das RowName Feld aus der CrossTabDataObject) etc. Ich bin mit:

object boundValueObj = null;
Control ctrl = (Control)sender;
IDataItemContainer dataItemContainer = (IDataItemContainer)ctrl.NamingContainer;
boundValueObj = DataBinder.Eval(dataItemContainer.DataItem, strSelectedID);

Dieser Code in der InstantiateIn Funktion des Gridview wie ich Drop bin Erstellen von Listenvorlagen in jeder Zelle der Kreuztabelle.

Ich habe Code (nicht dargestellt), dass Sätze strSelectedID auf der Säule je geschaffen.

Wenn strSelectedID auf „RowName“ für dynamische Spalte gleich [0] die DataBinder.Eval Funktion funktioniert gut und setzt boundValueObj wie erwartet. Das Problem kommt, wenn strSelectedID auf "CellContents [n]" gesetzt ist, wobei n die Spalte Index.

DataBinder.Eval funktioniert nur mit Eigenschaften und Felder von Objekten. Wie bekomme ich diese um?

Danke,

Rich.

War es hilfreich?

Lösung

OK - dumme Fehler von mir

Ändern:

CrossTabDataObject
{
   string RowName{get;set;};
   int RowId{get;set;}
   List<string> CellContents = new List <string>();
   //Constructor..... etc.

}

zu:

CrossTabDataObject
{
   string RowName{get;set;};
   int RowId{get;set;}
   List<string> CellContents{get;set;}
   //Constructor
   public CrossTabDataObject()
   {
     CellContents = new List<string>();
   }

}

machte den Unterschied. Mit anderen Worten machte ich CellContents eine Eigenschaft der Klasse.

Rich.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top