C # (ASP.Net) ربط قيم التحديد بالثوابت في Codebehind

كود ASPX

    Developer  dev.test.com
    staging.test.com

ASPX.CS - Codebehind

const string ServerDeveloper = "developer";

ASPX Error: Code blocks are not supported in this context.

Question: So what is the correct way to tie an dropdown/radio buttion/... ASPX value to a constant that is shared with the CodeBehind code?

أعلم أنه يمكنني القيام rbServer.Add.Item ("المطور") [من CodeBehind] ، ولكن هل هناك طريقة لتحقيق ذلك من جانب العرض التقديمي للأشياء؟

4
هل نفتقد بعض المعلومات هنا؟ يرجى تصحيح كود ASPX!
وأضاف المؤلف Torbjørn, مصدر

4 إجابة

سيكون من:

rbServer.Items.Add(ServerDeveloper)

حسنًا ، نظرًا لأنك تريد القيام بذلك من العرض التقديمي ... فمن الممكن ، ولكنه قبيح بشكل فظيع:

<div>
<% rbServer.Items.Add(new ListItem("Dev", ServerDeveloper)); %>

    Blah

</div>

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

3
وأضاف
أوافق على رمز مضمنة هو قبيح. أنا فقط أتوقع <�٪ = ... للعمل. شكر
وأضاف المؤلف Jason V, مصدر
ومع ذلك ، فإنه يحتوي على "تفاصيل" لطيفة باستخدام ثابت في كلا الساحتين.
وأضاف المؤلف Jason V, مصدر

في معظم الحالات أقوم بإضافة ListItems إلى القائمة في codebehind ، وليس في الترميز. أعتقد أن ذلك سيحل مشكلتك (على الرغم من أنني أعتقد أننا نفتقر إلى بعض المعلومات هنا). إنشاء ListItems جديدة وإضافتها إلى مجموعة عناصر rbServer.

0
وأضاف

في الماضي ، سيكون الحل الأفضل إضافته من codebehind باستخدام rbServer.Items.Add ()

0
وأضاف
أنا أختلف ، إذا كانت قيمًا ثابتة ، فمن الأسهل وضعها في aspx لأنه عند إنشاء ملفات موارد ، يتم إنشاؤها تلقائيًا في وحدة resx. إذا قمت بإضافتها في codebehind ، سيكون لديك لربط مقبلات المورد يدويا مع GetLocalResoureObject() ...
وأضاف المؤلف Peter, مصدر

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

0
وأضاف