যেহেতু এই বিকল্পটি বিভিন্ন পদ্ধতিতে প্রয়োজন হতে পারে, তাই আমি কোনও অবজেক্ট বিকাশ করার সিদ্ধান্তে পৌঁছেছি যাতে এটি বিভিন্ন পরিস্থিতিতে এবং ভবিষ্যতের প্রকল্পগুলিতে ব্যবহার করা যায়
প্রথমে আপনার প্রকল্পে এই শ্রেণি যুক্ত করুন
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"));
এবং অবশেষে ভিউতে আপনি এই জাতীয় কোড করবেন।
@Html.DropDownList("DropDownListMainCategory", (IEnumerable<SelectListItem>)ViewBag.MainCategories, new { @class = "form-control", onchange = "this.form.submit();" })
SelectList
আইটেমগুলিতে সরাসরি ডেটা বাইন্ডিংয়ের জন্য সত্যই কেবল সহায় বলে মনে হচ্ছে। আপনি যদি আইটেমগুলি যুক্ত করেন তবেList<SelectListItem>
পরিবর্তে ম্যানুয়ালি ব্যবহার করুন।