Вопрос

Я новичок в 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://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.Это уже может многое сделать для вас, но вы также можете указать каждый отдельный столбец отдельно.

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

Есть еще много чего, просто погуглите.

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

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

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

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

Вперед здесь для получения тонны примеров того, как использовать jqGrid.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top