سؤال

لدي الكائن التالي:

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

}

أنا أبني شبكة كروسستاب ديناميكية باستخدام Gridview في ASP.NET 3.5

أرغب في ربط cellcontents [0] للعمود الديناميكي 1 ، cellcontents [1] للعمود الديناميكي 2 (العمود الديناميكي 0 هو حقل Rowname من crosstabdataObject) وما إلى ذلك. أنا أستخدم:

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

هذا الرمز موجود في وظيفة instantiatein من GridView حيث أقوم بإنشاء قوالب قائمة منسدلة في كل خلية من crosstab.

لدي رمز (غير معروض) الذي يحدد Strelycedid اعتمادًا على العمود الذي يتم إنشاؤه.

عندما يكون StrelytedId يساوي "Rowname" للعمود الديناميكي [0] ، تعمل دالة databinder.eval بشكل جيد وتعيين BoundValueObj كما هو متوقع. تأتي المشكلة عندما يتم تعيين StrelytedId على "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 خاصية للفصل.

ثري.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top