Получение значений формы с помощью MvcPager - PullRequest
0 голосов
/ 11 декабря 2011

Когда я выбираю любую страницу моего PagedList<T>, активируется метод [HttpGet]. Из-за этого я не могу использовать Request.Form.GetValues().

Я только что увидел переменную Request в непосредственном окне и понял, что не вижу нужного мне значения из имеющихся у меня идентификаторов (запрос не дает мне никакого значения любого идентификатора экрана, так как я не используя метод post).

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

Я тоже знаю их удостоверение личности.

Я использую следующий элемент управления для создания этих флажков:

//foreachloop 
<%: Html.CheckBox(item.ID.ToString(), item.isChecked)%>

Для моей нумерации страниц я использую следующее:

Aspx: <%: Html.Pager (Model.ListaGridPaginada)%>

Этот пейджер перегружен и вызывает следующее:

public static MvcHtmlString Pager(this HtmlHelper helper, int totalPageCount, int pageIndex, string actionName, string controllerName, 
        PagerOptions pagerOptions, string routeName, RouteValueDictionary routeValues, IDictionary<string, object> htmlAttributes)
    {
        var builder = new PagerBuilder
            (
                helper,
                actionName,
                controllerName,
                totalPageCount,
                pageIndex,
                pagerOptions,
                routeName,
                routeValues,
                htmlAttributes
            );
        return builder.RenderPager();
    }

Я вызываю метод, который создает эту переменную со следующими параметрами:

public static MvcHtmlString Pager<T>(this HtmlHelper helper, PagedList<T> pagedList)
    {
        if (pagedList == null)
            return Pager(helper,null, null);
        return Pager(helper, pagedList.TotalPageCount, pagedList.CurrentPageIndex, null, null, null,null, null,null);
    }

Этот пейджерПомощь от Webdiyer

1 Ответ

0 голосов
/ 11 декабря 2011

Я думаю, что если вы оберните его в форму и установите метод GET, тогда он должен передать все значения вашей формы в строку запроса. Примерно так:

using (Html.BeginForm("Controller", "Action", FormMethod.Get))
{
    // grid in here
    //foreachloop 
    <%: Html.CheckBox(item.ID.ToString(), item.isChecked)%>
    <input type="submit" value="Save" />
}

Когда вы нажимаете кнопку отправки, строка запроса будет выглядеть примерно так:

Action?ID1=false&ID2=true&ID2=false

Который, вы посмотрите на строку запроса, чтобы определить, содержит ли идентификатор флажка значение true. Посмотрите, как ID1 = ложь, но ID2 верно и ложно? Это означает, что ID1 не был проверен, но ID2 был проверен.

Request.QueryString["ID2"].Contains("True")

Если это не работает для вас, вы можете отслеживать, какие флажки отмечены с помощью javascript, поместив проверенное состояние в скрытое значение и передав его.

Помогает ли это кому-нибудь?

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