I have a table with: tbl_Category Id | Name | ParentID 1 Category 1 0 2 Category 2 0 3 Subcategory 11 1 4 Subcategory 12 1 5 Subcategory 21 2 6 Subcategory 211 5 7 Subcategory 22 2 ......... How do I return it in a dropdownlist in the below format: Category 1 --Subcategory 11 --Subcategory 12 --Subcatgory 13 Category 2 --Subcategory 21 ----Subcategory 211 ----Subcategory 212 --Subcategory 22 --Subcatgory 23 Category 3 --Subcategory 31 --Subcategory 32
回答
您可以使用HTML在你的文本,以便例如嘗試:
Category1
Subcategory11
等等。這樣的文本將被縮進到正確根據類別級別
幫助器方法Html.DropDownListFor
能夠渲染組中的項目。您只需要爲每個SelectListItem
指定Group
屬性。
var group1 = new SelectListGroup {Name = "Category 1"};
var group2 = new SelectListGroup { Name = "Category 2" };
var options= new List<SelectListItem>
{
new SelectListItem {Value = "1", Text = "Subcategory 11", Group = group1},
new SelectListItem {Value = "2", Text = "Subcategory 12", Group = group1},
new SelectListItem {Value = "3", Text = "Subcategory 21", Group = group2}
};
輔助方法
@Html.DropDownListFor(s=>s.SomeProperty,options)
還是DropDownList
幫手
@Html.DropDownList("MySelectName", options)
獲取數據的使用情況如何?
如果您使用實體框架進行數據訪問,則可以執行此代碼以獲取操作方法中的分組數據。
var db = new YourDbContextHere(); // Replace your db context class here
var parentsDictionary = db.Categories
.ToDictionary(d => d.Id, v => v.Name);
var groups = db.Categories.Select(x => x.Name)
.Select(f => new SelectListGroup() { Name = f }).ToList();
var itemsWithParents = (from c in db.Categories
join p in db.Categories
on c.ParentId equals p.Id
select new { Id = c.Id,
Text = c.Name,
ParentId = c.ParentId }).ToList();
var groupedData = itemsWithParents
.Where(f => f.ParentId != 0)
.Select(x => new SelectListItem
{
Value = x.Id.ToString(),
Text = x.Text,
Group = groups
.First(a =>
a.Name == parentsDictionary[x.ParentId])
}).ToList();
ViewBag.GroupedCategory= groupedData;
return View();
我正在使用ViewBag傳輸數據,假設您沒有視圖模型。
現在,在您看來,使用DropDownList
的輔助方法,
@Html.DropDownList("SelectedCategory",ViewBag.GroupedCategoryas List<SelectListItem>)
我需要進入數據庫,使用Model,Controller,View顯示它。 –
我不知道你的數據訪問技術是什麼。所以不能幫助 – Shyju
我使用asp.net mvc 5。模型將從表tbl_Category獲取數據,並顯示查看 –
- 1. ASP.NET MVC下拉列表中要搜索的類別
- 2. 類別和子類別的多選擇下拉列表
- 3. ASP.Net MVC路線 - 電子商務類別(根和子類別)
- 4. 使用asp.net生成類別和子類別列表mvc2
- 5. mysql類別和子類別列表
- 6. 下拉類中的子類別
- 7. 下拉子類別WordPress的
- 8. 如何在Codeigniter下拉列表中顯示類別和多級子類別
- 9. 兩個列表類別和子類別
- 10. 顯示類別和子類別的下拉菜單
- 11. 在Wordpress中顯示帖子的類別和子類別列表
- 12. Asp.net MVC 3和主頁ViewModel和類別列表
- 13. WordPress的排序類別下拉列表?
- 14. PHP codeigniter獲取類別和子類別的逗號分隔子類別列表
- 15. ASP.NET MVC路由。空格和類別
- 16. 的類別和子類別
- 17. ASP.NET Mvc下拉列表?
- 18. ASP.Net MVC 3下拉列表
- 19. ASP.NET MVC下拉列表
- 20. 建立類別 - 從MySQL表中的子類別的HTML列表
- 21. WordPress的類別 - 列表帖子和子類別
- 22. JQGrid內嵌編輯:基於另一個類別下拉列表篩選子類別下拉列表
- 23. 如何查詢類級別的ASP.NET MVC應用5屬性
- 24. CakePHP中的子類別和類別
- 25. 如何知道類別下拉選擇的子類別?
- 26. 類別和子類別
- 27. MySql,產品的可選類別,子類別和子子類別
- 28. Django的類別,子類別和子子類別
- 29. 爲類別和子類別創建表
- 30. 如何顯示類別和子類別的巨大列表?
我需要得到它在數據庫中,並顯示查看。怎麼做? –