سؤال

محاولة إنشاء قائمة مختارة مع نص الخيار الأول تعيين إلى سلسلة فارغة. كصور بيانات لدي قائمة من فئة GenericKeyValue مع خصائص "المفتاح" & "القيمة". الرمز الحالي الخاص بي هو كما يلي.

                <%= this.Select(x => x.State).Options(ViewData[Constants.StateCountry.STATES] as IList<GenericKeyValue>, "Value", "Key").Selected(Model.State) %>

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

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

المحلول

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

ViewData[Constants.StateCountry.STATES] = SelectList(myList, "Key", "Value");

في وحدة التحكم وفي العرض:

<%= Html.DropDownList(Constants.StateCountry.STATES, "")%>

نصائح أخرى

تأكد من أنه يمكنك، لكنك تضيفها إلى قائمتك التي ترتبط بها المنسدلة ...

List<State> list = _coreSqlRep.GetStateCollection().OrderBy(x => x.StateName).ToList();
list.Insert(0, new State { Code = "Select", Id = 0 });
ViewData["States"] = new SelectList(list, "Id", "StateName", index);

أو هذا...

وجهة نظركم؛

<%=Html.DropDownList("selectedState", Model.States)%>

وحدة تحكم الخاصة بك؛

public class MyFormViewModel
{
    public SelectList States;
}

public ActionResult Index()
{
   MyFormViewModel fvm = new MyFormViewModel();
   fvm.States = new SelectList(Enumerations.EnumToList<Enumerations.AustralianStates>(), "Value", "Key", "vic");

   return(fvm);
}

دون تمديد أي شيء - لا يمكنك ذلك.

إليك هذا المؤلف يقول:

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

يحرر:
من ناحية أخرى - هناك طريقة "أول" طريقة للتحديد في أحدث رمز مصدر.
قم بتنزيل MVCContrib عبر SVN، وبناء واستخدام.

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