0

我想为 webgrid 自动生成行号,我可以用下面的代码来做

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<>

在第三步中,从我的角度来看,我将我的 webgrid 的源属性提供给我的模型中保存数据的列表

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

2 回答 2

1

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

@model IEnumerable<MyViewModel>

代替:

@model IEnumerable<SomeDomainModelProbablyComingFromAnAutogeneratedEFContext>

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

public int RowNumber { get; set; }
于 2013-04-24T09:01:28.513 回答
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)
于 2013-06-18T09:45:56.823 回答