Подтвердить что ты не робот

Пейджинговые и сортировочные сетки с ASP.Net MVC

Я новичок в 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>
4b9b3361

Ответ 1

Можно использовать один и тот же контроллер, просто добавьте дополнительный параметр и назовите его сортировку. Затем проверьте в контроллере, что такое сортировка значений, и отсортируйте данные на основе этого параметра.

Или, если вы хотите делать что-то на стороне клиента, вы можете использовать что-то вроде tablesorter, плагин для jquery.

Ответ 2

теперь MVC 3 теперь имеет webGrid из коробки. Я знаю, что этот вопрос был давным-давно, но я оказался на нем, когда искал что-то о webGrid. Поэтому я подумал, что у него должен быть ответ, касающийся нового webGrid.

Вот несколько хороших сообщений о том, как его использовать:

http://www.dotnetcurry.com/ShowArticle.aspx?ID=615

http://cnug.co.in/blogs/shijuv/archive/2010/10/08/using-the-webgrid-helper-in-asp-net-mvc-3-beta.aspx

http://www.nickharris.net/tag/webgrid/

Он поддерживает сортировку, подкачку, а также некоторые элементы Ajax. Он может сделать много для вас уже, но вы также можете указать каждый отдельный столбец отдельно.

Update:
Существует также много доступных библиотек JavaScript, которые могут сделать таблицу для вас. Мне лично нравится использовать DataTables. Вы можете подать ему существующую таблицу html, сгенерированную на сервере, или предоставить ей конечную точку, где она может извлекать данные (все или только одну страницу).

Есть еще много, только Google вокруг.

Ответ 3

С MVC вам нужно сворачивать свою собственную сортировку, подкачку и т.д. Я бы предложил YUI DataTable или какой-то другой JavaScript Гриды там.

Также, если вы обнаружите, что ваша персональная работа тяжелая работа с сетью данных, вы можете взглянуть на динамические данные ASP.NET, она специально разработана для этих типов взаимодействий с ORM.

Ответ 4

Сначала используйте jQuery. jQuery - ваш друг. Затем используйте этот удивительный и, вероятно, лучший элемент управления сеткой для jQuery jqGrid.

В вашем CustomerController создайте действие CustomerData. Все взаимодействие с сеткой должно указывать на это действие.

Перейдите здесь для нескольких примеров о том, как использовать jqGrid.

Ответ 5

Мы использовали JqxGrid на стороне клиента из JqWidgets и очень довольны его производительностью, связанной с огромным количеством записей, а также подкачки, фильтрация, сортировка встроенных внутри. Здесь - пример привязки его в ASP.Net MVC