كيف أقوم بإجراء تحكم خادم ASP.NET الخاص بي، خذ كتلة رمز مضمنة كقيمة خاصية؟

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

سؤال

لدي عنصر تحكم خادم مخصص مع خاصية العنوان. عند استخدام عنصر التحكم، أود تعيين قيمة العنوان في صفحة ASPX مثل ذلك:

<cc1:customControl runat="server" Title='<%= PagePropertyValue%>' >
more content
</cc1:customControl>

عندما أفعل هذا، إلا أنني أحصل على السلسلة الدقيقة <٪ = PagePropertyValue٪> يتم عرضها بدلا من قيمة الخصائص التي أود رؤيتها.

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

<cc1:customControl runat="server" Title='<%# PagePropertyValue%>' >
more content
</cc1:customControl>

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

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

المحلول

أنت غير قادر. <٪ =٪> سوف يكتب السلسلة مباشرة إلى دفق الاستجابة، والتي يحدث بعد إنشاء عنصر تحكم الخادم. يرى هذا المشنور للحصول على تفسير.

إما إما CodeBehind، أو <٪ # + Databinding كما يقترح Zachary.

نصائح أخرى

كاتباع متابعي لسؤالي الخاص، اكتشفت أن ما أريده حقا هو استخدام تعبيرات ASP.NET باستخدام بناء جملة <٪ $، لأن ما أردت القيام به تم وضعه في محتوى مترجم.

يمكن القيام بذلك مع عدم وجود معالجة إضافية على جانب عنصر تحكم الخادم.

<cc1:customControl runat="server" Title='<%$ Resouces: ResourceFile, ContentKey %>' >
more content and controls
</cc1:customControl>

هذا يعمل بشكل جيد فقط.

حاول استخدام بناء جملة البيانات:<%# PagePropertyValue %>

بالنسبة لقيمة خاصية الربط للعمل بشكل صحيح كما هو مقترح، سيكون لديك هذا في ملف ASPX أو ASCX:

<cc1:customControl runat="server" Title='<%# PagePropertyValue %>' >
more content
</cc1:customControl>

ستحتاج بعد ذلك إلى ربط البيانات في صفحتك في صفحتك التي يجب عليك إضافتها هذا في رمزك عند الملف (رمز في C #)

protected void Page_Load(object sender, EventArgs e)
{
    DataBind();
}

بهذه الطريقة سوف يربط البيانات في ملف ASCX أو ASPX الخاص بك.

لاحظ أن هذا محدد للسيطرة على السمات. عند استخدام سمات التحكم في بناء الجملة٪ <٪ = معنى أي مكان آخر في الصفحة يعمل بناء الجملة كما هو متوقع. لذلك <٪ = getcapitalusername ()٪> سيتصل بالطريقة الصحيحة وحقن نتيجة المكالمة في الصفحة.

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