databinder.evalを使用して、リストにバインディング<文字列>を使用します
-
30-09-2019 - |
質問
私は次のオブジェクトを持っています:
CrossTabDataObject
{
string RowName{get;set;};
int RowId{get;set;}
List<string> CellContents = new List <string>();
//Constructor..... etc.
}
ASP.NET 3.5のGridViewを使用して、動的なCrosstabグリッドを構築しています
動的列1の場合、cellcontents [0]、動的列2(動的列0はcrosstabdataobjectのrownameフィールド)などのcellcontents [1]に結合したいと思います。私は以下を使用しています。
object boundValueObj = null;
Control ctrl = (Control)sender;
IDataItemContainer dataItemContainer = (IDataItemContainer)ctrl.NamingContainer;
boundValueObj = DataBinder.Eval(dataItemContainer.DataItem, strSelectedID);
このコードは、CrosStabの各セルでドロップダウンリストテンプレートを作成しているため、GridViewのインスタンスインチーチ関数にあります。
作成されている列に応じてStrecedIDを設定するコード(表示なし)があります。
StrselededIDが動的列[0]の「rowname」に等しい場合、データベインダー。Val関数は正常に動作し、予想どおりにBoundValueOBJを設定します。問題は、StrselededIDが「CellContents [n]」に設定されている場合に発生します。ここで、nは列インデックスです。
DataBinder.Evalは、オブジェクトのプロパティとフィールドでのみ動作します。これを回避するにはどうすればよいですか?
ありがとう、
リッチ。
解決
わかりました - 私による愚かな間違い!
変化:
CrossTabDataObject
{
string RowName{get;set;};
int RowId{get;set;}
List<string> CellContents = new List <string>();
//Constructor..... etc.
}
に:
CrossTabDataObject
{
string RowName{get;set;};
int RowId{get;set;}
List<string> CellContents{get;set;}
//Constructor
public CrossTabDataObject()
{
CellContents = new List<string>();
}
}
すべての違いを生み出しました。言い換えれば、私はCellcontentsをクラスの特性にしました。
リッチ。
所属していません StackOverflow