Asp.net mvc 在MVC4中使用WebGrid分页

Asp.net mvc 在MVC4中使用WebGrid分页,asp.net-mvc,asp.net-mvc-4,pagination,webgrid,Asp.net Mvc,Asp.net Mvc 4,Pagination,Webgrid,在我看来,这就是代码。WebGrid排序和过滤器工作正常。我试图实现分页,但这并没有发生 视图: @{ var grid=新WebGrid(空, defaultSort:“”, 行页码:10, selectionFieldName:“搜索字符串”, ajaxUpdateContainerId:“agrid”, sortFieldName:“SortColumn”, sortDirectionFieldName:“SortOrder”); Bind(Model,autoSortAndPage:tr

在我看来,这就是代码。WebGrid排序和过滤器工作正常。我试图实现分页,但这并没有发生

视图:

@{
var grid=新WebGrid(空,
defaultSort:“”,
行页码:10,
selectionFieldName:“搜索字符串”,
ajaxUpdateContainerId:“agrid”,
sortFieldName:“SortColumn”,
sortDirectionFieldName:“SortOrder”);
Bind(Model,autoSortAndPage:true,行数:20);
}
@grid.GetHtml(
表样式:“webGrid”,
headerStyle:“header”,
alternatingRowStyle:“alt”,
列:grid.columns(
网格栏(“ID”),
网格栏(“说明”)
)
)
控制器:

        public ActionResult Index(int? page=1, int currentPage = 1, int PageSize = 10, string SortColumn = "", string SortOrder = "", string SearchString = "", int numberOfPages=0, int tr=0)
    {
        DataContextDataContext obj = new DataContextDataContext();
        System.Nullable<int> Total = null;


        var model = obj.TempItemSubClassList(page, PageSize, SortColumn, SortOrder, SearchString, ref Total).ToList();
        tr = (int) Total;

        numberOfPages = (int)(Total + PageSize - 1) / PageSize;

        return View(model);

        //var itemsubclasses = db.ItemSubClasses.Include(i => i.ItemClass);
        //return View(itemsubclasses.ToList());

    }
public ActionResult索引(int?page=1,int currentPage=1,int PageSize=10,string SortColumn=“”,string SortOrder=“”,string SearchString=“”,int numberOfPages=0,int tr=0)
{
DataContextDataContext obj=新建DataContextDataContext();
System.Nullable Total=null;
var model=obj.TempItemSubClassList(页面、页面大小、排序列、排序器、搜索字符串、引用总数)。ToList();
tr=(int)总计;
numberOfPages=(int)(总计+页面大小-1)/页面大小;
返回视图(模型);
//var itemsublass=db.itemsublass.Include(i=>i.itemsclass);
//返回视图(itemsublass.ToList());
}

网格需要知道在您提供的示例中硬编码为20的行总数。将总数添加到模型中,并以这种方式引用它。另外,与直觉相反,
autoSortAndPage
参数应设置为
false

@{        
var grid = new WebGrid(null,
        defaultSort: "",
        rowsPerPage: 10,
        selectionFieldName:"SearchString",
        ajaxUpdateContainerId:"agrid",
        sortFieldName:"SortColumn",
        sortDirectionFieldName:"SortOrder");
grid.Bind(Model, autoSortAndPage: true, rowCount:20); <--- total number of rows
}
@{
var grid=新WebGrid(空,
defaultSort:“”,
行页码:10,
selectionFieldName:“搜索字符串”,
ajaxUpdateContainerId:“agrid”,
sortFieldName:“SortColumn”,
sortDirectionFieldName:“SortOrder”);

Bind(Model,autoSortAndPage:true,rowCount:20);如果您对默认web网格分页以外的自定义分页感兴趣,请查看
@{        
var grid = new WebGrid(null,
        defaultSort: "",
        rowsPerPage: 10,
        selectionFieldName:"SearchString",
        ajaxUpdateContainerId:"agrid",
        sortFieldName:"SortColumn",
        sortDirectionFieldName:"SortOrder");
grid.Bind(Model, autoSortAndPage: true, rowCount:20); <--- total number of rows
}