سؤال

في واحدة من صفحاتنا، لدينا جدول يحتوي على صفوف ولدت في وقت التشغيل. أريد أن نقل المحتوى من تلك الصفوف للخروج الى سيطرتهم وتعيين خصائص عليه في وقت التشغيل، وذلك للفصل بين العرض التقديمي من التعليمات البرمجية. ولكنه لا يعمل بالطريقة التي كنت أتوقع.

إذا عندي مثل صف وراثة التحكم من UserControl، ثم أستطيع أن أفعل ذلك لإنشاء عنصر التحكم في وقت التشغيل:

MyControl row = (MyControl)LoadControl("~/controls/MyControl.ascx");

وبعد ذلك، كنت أريد أن أضيف أن لمائدتي:

MyTable.Rows.Add(row);

ولكن الخلاف لا يرث من System.Web.UI.HtmlControls.HtmlTableRow أو System.Web.UI.WebControls.TableRow، لذلك لا يمكنك أن تفعل ذلك. ومع ذلك، إذا قمت بعمل إرادتي ترث من واحد من هذين، ثم الدعوة LoadControl فوق يشكو من أن الرقابة لا يرث من UserControl.

ما هو الحل سعيد هنا؟ إذا كانت هناك حاجة مزيد من المعلومات، يرجى طرحها.

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

المحلول

وأعتقد أن ما كنت تبحث القيام به هو هذا:

    MyControl row = (MyControl)LoadControl("~/controls/MyControl.ascx");
    TableCell newCell = new TableCell();
    newCell.Controls.Add(row);
    TableRow newRow = new TableRow();
    newRow.Cells.Add(newCell);
    MyTable.Rows.Add(newRow);

والمشكلة كما ذكرتم هي أن التحكم الخاصة بك لا يمكن أن ترث من فئات أساسية متعددة ولا يمكنك إضافة التحكم الخاصة بك مباشرة إلى جمع الصفوف. تحتاج إلى أولا التفاف عليه. قد تكون هناك حلول أكثر نظافة، ولكن هذا لا عمل.

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