Почему не работают разбивка на страницы и сортировка MVC3? - PullRequest
0 голосов
/ 04 ноября 2011

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

Это код, который я использую:

      @if (Model.AdsList != null)
    {

    WebGrid adGrid = new WebGrid(Model.AdsList, rowsPerPage: 10, canSort: true, ajaxUpdateContainerId: "adsGrid");
    <div>
  @adGrid.Pager(WebGridPagerModes.NextPrevious);
            @adGrid.GetHtml(tableStyle: "webGrid",
                headerStyle: "header",
                alternatingRowStyle: "alt",
                htmlAttributes: new { id = "adsGrid", width = "100%" },
                columns: adGrid.Columns(
                                        //columns
        ));
    </div>
}

Данные загружаются правильно, но ни одна из сгенерированных ссылок не работает. Что мне нужно сделать в controller для подкачки и сортировки?

РЕДАКТИРОВАТЬ : Я получаю эту страницу в результате операции поста с другой страницы. В контроллере нет действия GET с тем же именем.

код показан ниже в контроллере

 [HttpPost]
    public ActionResult Search(SearchModel model)
    {
            //some operation
           return view(model);
    }

Мне также нравится знать, как работает пейджинг. Является ли запрос веб-сетки к базе данных каждый раз, когда я нажимаю на следующую страницу или сортирую ссылки?

1 Ответ

4 голосов
/ 06 ноября 2011
var grid = new WebGrid(source: Model, rowsPerPage: 6,canPage: true, canSort: true, ); 

@grid.GetHtml(headerStyle: "gridtableheader", footerStyle: "paging",                  
columns:
 grid.Columns(
//Columns
),
mode: WebGridPagerModes.All)

// различные режимы пейджинга

mode: WebGridPagerModes.FirstLast
mode: WebGridPagerModes.NextPrevious
mode: WebGridPagerModes.Numeric 

Надеюсь, что это решит вашу проблему

...