私は次のオブジェクトを持っています:
CrossTabDataObject
{
string RowName{get;set;};
int RowId{get;set;}
List<string> CellContents = new List <string>();
//Constructor..... etc.
}
asp.net3.5のGridViewを使用して動的クロス集計グリッドを構築しています
動的列1のCellContents[0]にバインドしたい(動的列0はCrossTabDataObjectのRowNameフィールドです)など。使用しているもの:
object boundValueObj = null;
Control ctrl = (Control)sender;
IDataItemContainer dataItemContainer = (IDataItemContainer)ctrl.NamingContainer;
boundValueObj = DataBinder.Eval(dataItemContainer.DataItem, strSelectedID);
このコードは、クロス集計の各セルにドロップダウンリストテンプレートを作成しているため、グリッドビューのInstantiateIn関数にあります。
作成する列に応じてstrSelectedIDを設定するコード(図には示されていません)があります。
strSelectedIDが動的列[0]の「RowName」と等しい場合、DataBinder.Eval関数は正常に機能し、boundValueObjを期待どおりに設定します。この問題は、strSelectedIDが "CellContents [n]"に設定されている場合に発生します。ここで、nは列インデックスです。
DataBinder.Evalは、オブジェクトのプロパティとフィールドでのみ機能します。これを回避するにはどうすればよいですか?
ありがとう、
リッチ。