जैसा कि इस विकल्प को कई अलग-अलग शिष्टाचारों में आवश्यकता हो सकती है, मैं किसी वस्तु को विकसित करने के लिए निष्कर्ष पर पहुंचा हूं ताकि इसका उपयोग विभिन्न परिदृश्यों और भविष्य की परियोजनाओं में किया जा सके
पहले इस वर्ग को अपनी परियोजना में जोड़ें
public class SelectListDefaults
{
private IList<SelectListItem> getDefaultItems = new List<SelectListItem>();
public SelectListDefaults()
{
this.AddDefaultItem("(All)", "-1");
}
public SelectListDefaults(string text, string value)
{
this.AddDefaultItem(text, value);
}
public IList<SelectListItem> GetDefaultItems
{
get
{
return getDefaultItems;
}
}
public void AddDefaultItem(string text, string value)
{
getDefaultItems.Add(new SelectListItem() { Text = text, Value = value });
}
}
अब कंट्रोलर एक्शन में आप ऐसा कर सकते हैं
// Now you can do like this
ViewBag.MainCategories = new SelectListDefaults().GetDefaultItems.Concat(new SelectList(db.MainCategories, "MainCategoryID", "Name", Request["DropDownListMainCategory"] ?? "-1"));
// Or can change it by such a simple way
ViewBag.MainCategories = new SelectListDefaults("Any","0").GetDefaultItems.Concat(new SelectList(db.MainCategories, "MainCategoryID", "Name", Request["DropDownListMainCategory"] ?? "0"));
// And even can add more options
SelectListDefaults listDefaults = new SelectListDefaults();
listDefaults.AddDefaultItme("(Top 5)", "-5");
// If Top 5 selected by user, you may need to do something here with db.MainCategories, or pass in parameter to method
ViewBag.MainCategories = listDefaults.GetDefaultItems.Concat(new SelectList(db.MainCategories, "MainCategoryID", "Name", Request["DropDownListMainCategory"] ?? "-1"));
और अंत में View में आप इस तरह कोड करेंगे।
@Html.DropDownList("DropDownListMainCategory", (IEnumerable<SelectListItem>)ViewBag.MainCategories, new { @class = "form-control", onchange = "this.form.submit();" })
SelectList
वास्तव में वस्तुओं को सीधे डेटा को बांधने के लिए सिर्फ एक सहायक लगता है। यदि आपList<SelectListItem>
इसके बजाय मैन्युअल रूप से उपयोग किए गए आइटम जोड़ते हैं ।