Советы по фильтрации веб-сетки MVC3? - PullRequest
0 голосов
/ 05 декабря 2011

Я пытаюсь найти лучший способ (минимальные усилия) применить фильтрацию к веб-сетке, которую я отобразил в своем основном / индексном представлении (MVC3).

Я добавил мультиселет, который позволил быфильтрация по определенному столбцу, и я хотел бы поймать событие click (которое я уже реализовал и работаю) для каждого элемента select, а затем каким-то образом повторно вызвать мой метод Index (), который содержит весь код, чтобы перестроить представление на основе егобыл вызван из фильтра (множественный выбор).

Как лучше всего это сделать?Я знаю, что это широкий вопрос, но любая информация будет принята с благодарностью.

Спасибо!

1 Ответ

1 голос
/ 05 декабря 2011

Вы можете поместить множественный выбор внутри формы.Затем у вас есть 2 возможности отправить эту форму:

  1. Использование кнопки отправки
  2. Использование события onchange мультиселекции (в этом случае вам придется использовать javascript)

Первый пункт прост:

@using (Html.BeginForm())
{
    @Html.ListBoxFor(x => x.SelectedItems, Model.Items)
    <button type="submit">Filter</button>
}

Для реализации второго вы можете использовать jQuery и подписаться на событие change мультиселекта.Во-первых, давайте присвоим этому множественному выбору идентификатор, чтобы его было легче выбрать:

@using (Html.BeginForm())
{
    @Html.ListBoxFor(x => x.SelectedItems, Model.Items, new { id = "filter" })
}

, а затем в отдельном файле javascript:

$(function() {
    $('#filter').change(function() {
        // when the selection changes we manually trigger the submission
        // of the containing form
        $(this).closest('form').submit();
    });
});

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...