كيف يمكنك DataBind Compolding يدويًا للتحكم المهمل مثل صف في Gridview؟

StackOverflow https://stackoverflow.com/questions/711304

سؤال

أنا أعاني من بناء جملة البيانات هنا. على سبيل المثال لدي بنية بيانات مثل هذا -

public class Course{

public string CourseName {get;set;}

public string CourseCode {get;set;}

public List<Instructor> InstructorsTeaching{get;set;}

}

public class Instructor{

public string InstructorName{get;set;}

public string InstructorCode{get;set;}

}

الآن إذا كنت أرغب في ربط دورات القائمة هذه لقول Gridview يدويًا ، يمكنني القيام بذلك

<asp:TextBox runat="server" ID="tbCourseName" Text='<%# Bind("CourseName")%>'/>

أثناء تحديد قالب تحرير الشبكة ، ولكن كيف يمكنني ربط المعلمين بتدريس الخاصية لقول مربع قائمة في نفس الصف ، لا يمكنني اكتشاف بناء الجملة ، إليك مجموعة من ما جربته وفشلت

<asp:ListBox runat="server" ID="tbInstructors" 
     DataSource='<%# Eval("InstructorsTeaching") as List<Instructor> %>'>
    <asp:ListItem Text='<%# Bind("InstructorCode")%>' 
                 Value='<%# Bind("InstructorName")%>'/>...
 <as:ListBox/>

رمز بلدي أعلاه لا يعمل بالتأكيد :). من الناحية المثالية ، أود القيام بذلك في الترميز بدلاً من الكود وراء.

هل كانت مفيدة؟

المحلول

لا أعتقد أنه يمكنك تعيين موقد بيانات مثل ذلك ، حاول إعداده حدث RowDatabound من Gridview

نصائح أخرى

لقد ضربت سببًا رئيسيًا لتصوير بيانات ASP.NET ثنائية الاتجاه: لا يمكنك حقًا القيام بربط بيانات ثنائية الاتجاه.

لسبب واحد ، على الرغم من أنه يمكنك القيام بذلك باستخدام eval ، فإن ASP.NET لا تسمح ببناء جملة الرسم البياني المتداخل مع تعبير الربط ، (أي <٪# bind ("customer.firstName") ٪>).

علاوة على ذلك ، بالنسبة لعناصر التحكم في القائمة المتداخلة مثل السيناريو الخاص بك ، فإن كل قائمة تتطلب تحكمًا إضافيًا لمهمة البيانات. أنت تقوم بتعيين DataSource على قائمتك ، والتي ستعمل على تعبيرات eval ، ولكن من أجل التعبيرات المرتبطة بالعمل ، يجب عليك استخدام DataSourceID لتوفير معرف التحكم في بيانات البيانات التي توفر مجموعة النتائج الداخلية. وحتى مع ذلك ، ستكون نتائجك Kludgy حيث يمكنك فقط تحديث مصدر بيانات واحد في وقت واحد.

من المحتمل أن يتم كتابة بيانات البيانات ذات الاتجاهين مع وضع SQLDATASOURCE في الاعتبار وليس ObjectDataSource. إذا كان لديك رسم بياني كائن متعدد المستويات ، فستجد أنه من المؤلم استخدام بيانات ثنائية الاتجاه.

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