为什么MVC3 webgrid分页和排序不起作用?

时间:2011-11-04 03:19:38

标签: asp.net-mvc asp.net-mvc-3 webgrid

我正在使用MVC3 webgrid来显示,排序和分页数据。显示很好,但是当我点击新页面或请求排序时,没有任何事情发生。

这是我正在使用的代码:

      @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);
    }

我也想知道分页是如何工作的。每当我点击下一页或对链接进行排序时,是否对数据库进行了webgrid查询?

1 个答案:

答案 0 :(得分:4)

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 

希望这将解决您的问题