Я использую Html.DropDownListFor()
для отображения выпадающего списка с данными из списка. Элементы списка имеют логическое свойство, называемое IsPublic
, определяющее, является ли этот элемент общедоступным или нет.Html.DropDownListFor grouping by bool - показать строку вместо значения bool
Вот как я определяю ниспадающее меню:
@Html.DropDownListFor(m => m.SelectedLayout,
new SelectList(Model.Layout, "LayoutString", "LayoutName", "IsPublic", 1))
Как вы можете видеть, я группирование по свойству IsPublic
. Как и следовало ожидать, группировка выполняется следующим образом, со следующим наименованием групп:
Обратите внимание, как группировка делаются на логическом значении (true
и false
).
Есть ли способ показать эту группировку как пользовательскую строку, хотя все еще группируется по логическому значению? Так что, если IsPublic == true
отображает имя группировки как Public
и наоборот IsPublic == false
отображает имя группировки как Private
?
Вы можете сделать это, создав новую 'SelectListGroup' и установив его' name' собственности, (на основе 'значение bool'), а затем создать новый' SelectListItem' и установка 'свойство Group', как описано во второй части [этого ответа] (http://stackoverflow.com/questions/37151572/constructing-a-select-list-with-optgroup-groups/37152663#37152663). Вы не показали модель или какие значения, которые она содержит, так немного сложно дать пример кода –