Сетки подкачки и сортировки с помощью ASP.Net MVC
-
20-08-2019 - |
Вопрос
Я новичок в MVC и не понимаю, как бы вы выполняли подкачку и сортировку по сетке.Я привык использовать asp.Net Элемент управления GridView с ObjectDataSource указывает на объекты на нашем бизнес-уровне - и в этом случае ODS обрабатывает всю подкачку и сортировку, используя методы, которые наш ORM генерирует для объектов.
Я рассматривал возможность использования того же ORM с MVC - и там все работает нормально - я просто перебираю коллекции, чтобы создать таблицу на странице, - но без ODS для обработки подкачки и сортировки я не знаю, как бы я с этим справился.Был бы у меня отдельный контроллер для подкачки и сортировки?
Я понимаю, что мне нужно создать свой собственный - но с чего мне начать?Я создал CustomerController и представление, в котором отображается таблица клиентов, которая выглядит следующим образом - и я хочу выполнить сортировку по столбцам FirstName или LastName.В моей модели есть метод Sort(), который принимает строковое выражение сортировки в формате, который будет использоваться парой GridView / ODS.Могу ли я создать новое действие в моем CustomerController под названием Sort и поместить ActionLink в свой заголовок?
<table>
<tr>
<th>
First Name
</th>
<th>
Last Name
</th>
</tr>
<% foreach (var item in Model)
{ %>
<tr>
<td>
<%= Html.Encode(item.FirstName) %>
</td>
<td>
<%= Html.Encode(item.LastName) %>
</td>
</tr>
<% } %>
</table>
Решение
Вы можете использовать тот же контроллер, просто добавьте дополнительный параметр и назовите его sort .Затем проверьте в контроллере, какое значение имеет sort, и отсортируйте ваши данные на основе этого параметра.
Или, если вы хотите что-то делать на стороне клиента, вы можете использовать что-то вроде сортировщик таблиц, плагин для jquery.
Другие советы
в настоящее время в MVC 3 уже есть готовая веб-сетка.Я знаю, что этот вопрос был задан некоторое время назад, но я наткнулся на него, когда искал что-нибудь о WebGrid.Поэтому я подумал, что в ответе должен быть упомянут новый WebGrid.
Вот несколько хороших постов о том, как его использовать:
http://www.dotnetcurry.com/ShowArticle.aspx?ID=615
http://www.nickharris.net/tag/webgrid/
Он поддерживает сортировку, подкачку по страницам, а также некоторые функции Ajax.Это уже может многое сделать для вас, но вы также можете указать каждый отдельный столбец отдельно.
Обновить:
Существует также множество доступных библиотек JavaScript, которые могут создать таблицу за вас.Лично мне нравится использовать Таблицы данных.Вы можете передать ему существующую html-таблицу, сгенерированную на сервере, или предоставить ему конечную точку, откуда он может извлекать данные (все или только одну страницу).
Есть еще много чего, просто погуглите.
С MVC вам как бы приходится выполнять свою собственную сортировку, подкачку и т.д.Я бы предложил YUI Поддающийся обработке данными или некоторые другие существующие JavaScript-сетки.
Также, если вы обнаружите, что выполняете тяжелую работу с сеткой данных, вы можете взглянуть на ASP.NET Динамические данные, они специально разработаны для таких типов взаимодействия с ORM.
Первое использование jQuery - jQuery - запрос.jQuery - ваш друг.Затем используйте этот потрясающий и, вероятно, лучший элемент управления сеткой для jQuery jqGrid - jqGrid - сетка.
В вашем CustomerController создайте действие с именем customerData .Все взаимодействие с Сеткой должно указывать на это действие.
Вперед здесь для получения тонны примеров того, как использовать jqGrid.