分页不在MVC Webgrid中工作

时间:2013-06-11 16:27:28

标签: c# asp.net-mvc

我正在使用MVC WebGrid。从4天开始我陷入困境。我已经检查了每个博客和stackoverflow上的每个问题,但没有任何作用。当我点击任何页码时,我的WebGrid消失了。我正在创建一个搜索控件。单击搜索按钮后,ajax.beginform将调用控制器上的方法,然后使用局部视图更新div。局部视图由webgrid(由结果组成)组成。 webgrid的代码如下:

@{
    var grid = new WebGrid(canPage: true, rowsPerPage: 5, ajaxUpdateContainerId: "grid");
    grid.Bind(list, rowCount: list.Count, autoSortAndPage: true);

    grid.Pager(mode: WebGridPagerModes.All);
}
<div id = "grid">
    @if (list[0].Title == null)
    {
        <span>No Record to display</span>
    }
    else
    {
        @grid.GetHtml(tableStyle: "gridTable",
                      headerStyle: "gridHead",
                      footerStyle: "gridFooter",
                      rowStyle: "gridRow",
                      alternatingRowStyle: "gridAltRow",
                      columns: grid.Columns(
                      grid.Column("Title", "Title"),
                      grid.Column("Category", "Category")
        ));
    }
</div>  

第一次打开网格。但是当我点击任何页码时,网格就会消失。

请帮助我!!提前致谢

3 个答案:

答案 0 :(得分:4)

我今天遇到了这个问题并设法修复它。

在POST方法调用后,WebGrid无法执行分页。

因此,修改您的搜索控件以获得除POST之后的其他内容

答案 1 :(得分:1)

寻呼问​​题已解决。 请删除ajaxUpdateContainerId: "grid"

var grid = new WebGrid( canPage: true, rowsPerPage: Model.PageSize, canSort: true, ajaxUpdateContainerId: "grid");

您已指定ajaxUpdateContainerId。这意味着您的分页基于 AJAX - 因此href中的#。如果您需要网址,则需要删除ajaxUpdateContainerId。

答案 2 :(得分:1)

我遇到同样的问题并在看到“mcaffart&#39;评论说webgrid在加载webgrid的post方法之后无法立即进行分页。我将我的Ajax调用更改为GET而不是post,还将我的操作方法标记为[HTTPGET],这导致webgrid上的分页按预期运行。感谢您的评论。