إنشاء عنصر تحكم ASP.NET مركب. كيفية تطبيق الخصائص المرتبطة Synid؟

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

سؤال

أقوم بإنشاء عنصر تحكم مركب مخصص يعتمد على التحكم في تسمية ASP. أود أن أكون قادرا على الحصول على خصائص التسمية الافتراضية Scanable بالإضافة إلى خصائص إضافية تضيفها إلى جهاز التحكم الخاص بي.

ولكن عندما أضيف تعريفا للبشرة إلى ملف Default.skin في دليل مواضيعي، وإضافة عنصر التحكم إلى صفحتي مع Synid المحدد، لا يمكنني معرفة كيفية الحصول على عنصر التحكم في التجسيد مع الخصائص البشرة.

نقاط إضافية:

  • يتم تعريف التحكم المخصص الخاص بي في مكتبة منفصلة / DLL.
  • أضفت خاصية اختبار واحد، وأضفت سمة [FALSE). ثم قمت بضبط هذه الخاصية في ملف .skin. لم أحصل على أي أخطاء عندما حاولت عرض الصفحة، لذلك يبدو لي أن ملف .skin لا يتم تطبيقه أو أن عنصر التحكم Def في ملف الجلد لا يتقوم بمقابله مع عنصر التحكم في صفحة ASPX.

من ملف الجلد:

<ctrl:ExtendedLabel SkinId="test" runat="server"
 Expandable="true" Lookup="true" Required="true"
 RequiredCssClass="required" Text="Hello" />

من صفحة ASPX:

<ctrl:ExtendedLabel SkinID="test" runat="server"/>

من web.config:

<pages>
  <controls>
     <add tagPrefix="ctrl" namespace="MyCompany.WebControls"
          assembly="MyCompany.Web" />
  </controls>
</pages>

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

لاحظ أن علامة الصفحات لا تحتوي على سمة STYLESHEETTHEEEE. ومع ذلك، هل لديك فئة صفحة أساسية تتجاوز خاصية Stylesheettheme، والتي يبدو أنها تعمل على كل شيء آخر.

إذا أضفت سمة STYLESHEETTHEEEE إلى علامة الصفحات في Web.config، فإن Skin Stuff Works، بما في ذلك الحصول على الخطأ إذا حاولت ضبط الخاصية غير المرخصة.

ماهو الفرق؟ كيف يمكنني الحصول عليها للعمل مع رمز خاصية صفحة الصفحات الأساسية؟

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

المحلول

ما الذي تحصل عليه عند محاولة هذا؟ لقد أنشأت للتو مشروع اختبار بسيط وكان قادرا على جلد خاصية مخصصة على عنصر تحكم مخصص ويب. كانت خطواتي:

  • إنشاء عنصر تحكم مخصص.
  • إضافة [سمة [True) [TRUE) إلى تعريف الفصل في ملف الكود الخلفي.
  • إضافة عنصر تحكم تسمية إلى التحكم المخصص الخاص بي.
  • إضافة خاصية باسم "LabelText" إلى عنصر تحكم مخصص الخاص بي، والتي تحصل على / ضبط عنصر تحكم التسمية القيمة النصية.
  • في Web.config، أضف "Theme =" TestTheme "" إلى قسم System.Web / الصفحات.
  • في Web.config، أضف "u003Cadd tagPrefix="mine" tagName="Test" src="~/UI/Test.ascx" /> "إلى قسم System.Web / الصفحات / الضوابط.
  • في ملف بلدي الافتراضي.u003Cmine:Test runat="server" LabelText="Test Text" />
  • في default.aspx، وأضاف "u003Cmine:Test id="test1" runat="server" /> '

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

نأمل أن تكون واحدة من خطواتي أعلاه شيء نسيت، ولكن إذا لم يكن كذلك، فيرجى تحديث سؤالك مع تفاصيل حول ما تحاول وما الذي تراه.

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