在mvc3 webgrid中实现行号以及分页?

时间:2013-04-24 08:57:53

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

我想为webgrid自动生成rownumber并且能够使用以下代码执行此操作

grid.Column(header: "RowNumber", format: item => item.WebGrid.Rows.IndexOf(item) + 1),

这个问题是,即时通讯也为我的网格实现分页,当我再次点击下一页时,行号是从sno 1生成的,当我的第1页包含第1行到第5行的记录时,我的页面2行编号应从第6行开始,但我的第2行编号再次从第1行开始。

我发布了获取数据并将数据绑定到网格的流程

在第一步中我有我的模型User.cs,它与数据库交互并获取数据并将数据存储在List<>中。

在下一步中,从我的控制器操作方法中调用我的模型User.cs中的方法,该方法将从数据库中获取数据并将其存储在List<>

在第3步中,从我的视图中我将webgrid的source属性赋予我的模型中包含数据的列表

 var grid = new WebGrid(source: WebgridPaging.Models.User.Users, rowsPerPage: 2,canPage:true,canSort:false);

2 个答案:

答案 0 :(得分:1)

我建议您使用视图模型(而不是将您的域模型传递给视图),即:

@model IEnumerable<MyViewModel>

而不是:

@model IEnumerable<SomeDomainModelProbablyComingFromAnAutogeneratedEFContext>

现在,在您的视图模型中,您可以自由拥有RowNumber属性:

public int RowNumber { get; set; }

答案 1 :(得分:0)

尝试以下

var cnt = Math.Round(Convert.ToDouble(grid.TotalRowCount / grid.PageCount) / grid.RowsPerPage) * grid.RowsPerPage * grid.PageIndex;

grid.Column(header: "S.NO.", format: item => item.WebGrid.Rows.IndexOf(item) + 1 + cnt)