Книга: ASP.NET MVC Framework
Элементы-списки
Элементы-списки
Для генерации списков используются два метода Html.DropDownList()
и Html.ListBox(),
генерирующие разметку для элементов: управления "выпадающий список" и "список" соответственно. Оба этих вспомогательных метода принимают в качестве параметра коллекцию SelectList
.
<%= Html.DropDownList("lstName",
new SelectList( new[] {"John", "Paul", "George", "Rringo"} )) %>
В результате создается разметка, содержащая теги <option>.
<select name="lstName">
<option>John</option>
<option>Paul</option>
<option>George</option>
<option>Rringo</option>
</select>
Для обеспечения возможности выбора нескольких элементов в списках, генерируемых методом ListBox
, в качестве параметра следует передать коллекцию MultiSelectList
.
<%= Html.ListBox("lstName",
new MultiSelectList( new[] {"John", "Paul", "George", "Rringo"} )) %>
Тогда будет определено свойство multiple
тега <select>.
<select multiple="multiple" name="lstName">
<option>John</option>
<option>Paul</option>
<option>George</option>
<option>Rringo</option>
</select>
Разумеется, в реальных приложениях не всегда удобно создавать отдельно список для элементов форм и хотелось бы использовать коллекцию бизнесобъектов, применяемых в логике приложения. Для этого может быть использован конструктор коллекции SelectList
.
SelectList(коллекция объектов,
название поля объекта, содержащее значение,
название поля объекта, содержащее текст,
выбранное значение
Например, в нашем приложении используются объекты типа Person
, определение которых представлено далее.
public class Person {
public int Id { get; set; }
public string Name { get; set; }
}
Тогда в методе контроллера для сохранения в коллекцию ViewData
коллекцию элементов списка можно передать, используя конструктор SelectList
так, как показано далее.
public ActionResult About()
{
List<Person> lst = new List<Person>
{
new Person { Id = 1, Name = "John"},
new Person { Id = 2, Name = "Paul"},
new Person { Id = 3, Name = "George"},
new Person { Id = 4, Name = "Ringo"}
};
ViewData["lstName"] = new SelectList(lst, "Id", "Name", 2);
return View () ;
}
В результате будет создана HTML-разметка, приведенная далее.
<select multiple="multiple" name="lstName">
<option value="1">John</option>
<option selected="selected" value="2">Paul</option>
<option value="3">George</option>
<option value="4">Ringo</option>
</select>
Таким образом, коллекция бизнес-объектов может быть использована для заполнения списков необходимыми данными.
- Вложение файлов в элементы списков
- Списки и деревья областей памяти
- Лекция 5. Списки и массивы
- Деревья - это списки и их элементы
- 6.4. Рабочий лист Excel и его структурные элементы
- 4.4. Логические элементы и синтез логических схем
- 4.7 Структурные элементы SAN
- Стандартные списки
- Отправка данных в списки SharePoint по электронной почте
- Логические элементы
- 5.2. Основные приемы работы, элементы текстового редактора
- Правило 16. Группируйте связанные между собой элементы