سؤال

هل هناك طريقة لتضمين خيار فارغ افتراضي (أو مع نص) إذا لم تكن هناك قيمة محددة لقائمة منسدلة؟

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

المحلول

وأدناه سوف إلحاقها string.Empty إلى SelectList (أو IEnumerable) المحددة في ViewData [ "القائمة"] البند. وحدد سوف يكون معرف واسم MenuID.

<%= Html.DropDownList( "MenuID",
                      (IEnumerable<SelectListItem>)ViewData["Menu"],
                      string.Empty ) %>

وثائق: دروبدوونليست طريقة

نصائح أخرى

على سبيل المثال:

    Controller :

    private void InitScreenInfoCollate()
    {   
        IEnumerable<MstBrd> listbrd = ibrandRepository.GetItemsByUsercode("");
        ViewBag.Brands = new SelectList(listbrd, "brd_cod", "brd_mei", null);

    }

    View :
    @Html.DropDownList("Brands", null, string.Empty, new { @class = "form-control"})

نتيجة :

inline image

نجح هذا الحل السهل في مشروعي mvc5:

في رؤيه:

@{
     Model.ModelItemsList.Add(new ModelItem{ });
     SelectList modelItemSelectList = new SelectList(Model.ModelItemsList, "ModelItemID", "ModelItemName");
}

فقط قم بإضافة عنصر جديد إلى List<> تريد عرضه في طريقة العرض الخاصة بك.في حالتي، أضفت "ModelItem" فارغًا إلى ملفي List<ModelItem> ModelItemList.نظرًا لأن ModelItemID الخاص بي عبارة عن Guid، فقد اضطررت إلى التحقق من وجود Guid.Empty في طريقة التحكم الخاصة بي وتنفيذ بعض التعليمات البرمجية.هذا كل شئ.

والحل المعروضة هنا عملت بشكل جيد للغاية بالنسبة لي: HTTP: //forums.asp. صافي / ر / 1142484.aspx / 1

والفكرة الأساسية هي أن تقوم بتعيين الخاصية AppendDataBoundItems من DropDownList لtrue ثم وضع asp:ListItem في DropDownList والتي ستصبح العنصر الافتراضي الخاص بك مع جميع البنود ربط بيانات القادمة بعد ذلك.

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