Добавление гиперссылок в заголовки столбцов в представление Student Index 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Добавление гиперссылок в заголовки столбцов в представление Student Index



1. В Views\Student\Index.cshtml, замените <tr> и <th> элементов для строки заголовков на следующий код:

<p> @Html.ActionLink("Create New", "Create")</p><table class="table"> <tr> <th> @Html.ActionLink("Last Name", "Index", new { sortOrder = ViewBag.NameSortParm }) </th> <th>First Name </th> <th> @Html.ActionLink("Enrollment Date", "Index", new { sortOrder = ViewBag.DateSortParm }) </th> <th></th> </tr> @foreach (var item in Model) {

Этот код использует сведения в ViewBag свойства для настройки гиперссылок с использованием соответствующего запроса строковые значения.

2. Откройте страницу и щелкните Фамилия и Дата регистрации заголовки столбцов, чтобы убедится, что Сортировка работает.

После того как вы щелкнете заголовок Фамилия, учащиеся отображаются по убыванию по фамилии.

Добавление поля поиска на страницу индекса учащихся

Для добавления фильтра на страницу индекса учащихся, добавьте в представление текстовое поле и кнопку отправки и внести соответствующие изменения в Index метод. Текстовое поле позволяет ввести строку для поиска в имена полей имени и фамилии.

Добавление функций фильтрации в метод Index

· В Controllers\StudentController.cs, замените Index метод (изменения выделены) следующим кодом:

public ViewResult Index(string sortOrder, string searchString){ ViewBag.NameSortParm = String.IsNullOrEmpty(sortOrder)? "name_desc": ""; ViewBag.DateSortParm = sortOrder == "Date"? "date_desc": "Date"; var students = from s in db.Students select s; if (!String.IsNullOrEmpty(searchString)) { students = students.Where(s => s.LastName.Contains(searchString) || s.FirstMidName.Contains(searchString)); } switch (sortOrder) { case "name_desc": students = students.OrderByDescending(s => s.LastName); break; case "Date": students = students.OrderBy(s => s.EnrollmentDate); break; case "date_desc": students = students.OrderByDescending(s => s.EnrollmentDate); break; default: students = students.OrderBy(s => s.LastName); break; } return View(students.ToList());}

Код добавляет searchString параметр в Index метод. Значение строки поиска получается из текстового поля, которое мы добавим в представление Index. Он также добавляет where в оператор LINQ, которое отбирает только студентов, чье имя или Фамилия содержат строку поиска. Оператор, который добавляет <xref:System.Linq.Queryable.Where%2A> выполняется только в том случае, если отсутствует значение для поиска.

 

Примечание

Во многих случаях можно вызвать тот же метод, либо набор сущностей Entity Framework, либо как метода расширения для коллекции в памяти. Обычно получаются такие же результаты, но в некоторых случаях результат может отличаться.

Например, реализация.NET Framework Contains метод возвращает все строки, передает пустую строку, когда поставщик Entity Framework для SQL Server Compact 4.0 не возвращает пустые строки. Поэтому код в примере (размещение Where инструкции внутри if инструкции) гарантирует, что вы получите те же результаты для всех версий SQL Server. Кроме того, реализация.NET Framework Contains метод по умолчанию выполняет сравнение с учетом регистра, но поставщики Entity Framework SQL Server по умолчанию выполняют сравнения без учета регистра. Таким образом, вызовом ToUpper производится проверка явно регистронезависимым способом и гарантирует, что результаты не изменятся при изменении кода позднее, которое будет возвращать IEnumerable, а не IQueryable объекта. (При вызове метода Contains коллекции IEnumerable выполняется реализация.NET Framework; при вызове этого же метода у объекта IQueryable выполняется реализация поставщика базы данных.)

Обработка NULL также может быть разным для разных поставщиков баз данных или при использовании IQueryable сравниваемый объект при использовании IEnumerable коллекции. Например, в некоторых сценариях Where условия, такие как table.Column!= 0 не может возвращать столбцы, имеющие null как значение.

 



Поделиться:


Последнее изменение этой страницы: 2019-04-27; просмотров: 135; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.223.125.219 (0.006 с.)