Пейджинговые и сортировочные сетки с ASP.Net MVC
Я новичок в MVC, и не понимаю, как вы будете делать подкачку и сортировку по сетке. Я привык использовать asp.Net GridView управления с ObjectDataSource указал на объекты в нашем бизнес-уровне - и в этом случае ODS обрабатывает все подкачки и сортировки с помощью методов, которые наша ORM генерирует на объектах.
Я посмотрел на использование одного и того же ORM с MVC - и там все отлично работает - я просто перебираю коллекции, чтобы построить таблицу на странице, но без ODS для обработки подкачки и сортировки, я смущен тем, как я бы справился с этим. Будет ли у меня отдельный контроллер для подкачки и сортировки?
Я понимаю, что мне нужно свернуть свой собственный - но с чего мне начать? Я создал CustomerController и представление, которое отображает таблицу клиентов, которая выглядит следующим образом - и я хочу Сортировать по столбцам FirstName или LastName. Моя модель имеет метод Sort (), который будет принимать строковое выражение сортировки в формате, который будет использоваться a Пара 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>
5 ответов:
вы можете использовать тот же контроллер, просто добавьте дополнительный параметр и назовите его сортировкой. Затем проверьте в контроллере, какое значение имеет сортировка, и отсортируйте данные на основе этого параметра.
или если вы хотите делать что-то на стороне клиента, вы можете использовать что-то вроде tablesorter плагин для jQuery.
в настоящее время MVC 3 теперь имеет webGrid из коробки. Я знаю, что этот вопрос был некоторое время назад, но я оказался на нем, когда искал что-то о webGrid. Поэтому я подумал, что у него должен быть ответ, в котором упоминается новый webGrid.
вот несколько хороших постов о том, как использовать это:
http://www.dotnetcurry.com/ShowArticle.aspx?ID=615
http://www.nickharris.net/tag/webgrid/
Он поддерживает сортировку, подкачку, а также некоторые вещи Ajax. Он может сделать много для вас уже, но вы также можете указать каждый отдельный столбец отдельно.
обновление:
Есть также много доступных библиотек JavaScript, которые могут сделать таблицу для вас. Я лично люблю использовать DataTables. Вы можете передать ему существующую таблицу html, созданную на сервере, или дать ему конечную точку, где он может получить данные (все или только одну страницу).есть еще много, просто Google вокруг.
с MVC вы вроде как должны свернуть свою собственную сортировку, подкачку и т. д. Я бы предложил Юи объекта DataTable или некоторые другие сетки JavaScript там.
кроме того, если вы обнаружите, что вы делаете тяжелую работу с сеткой данных, вы можете взглянуть на ASP.NET динамические данные, он специально разработан для этих типов взаимодействий против ORM.
первым использованием jQuery. jQuery-твой друг. Затем используйте этот удивительный и, вероятно, лучший контроль сетки для jQuery jqGrid.
в вашем CustomerController создайте действие с именем CustomerData. Все взаимодействие с сеткой должно указывать на это действие.
перейти здесь на тонны примеров о том, как использовать jqGrid.
Comments