在mvc3 webgrid中实现行号和分页?

问题描述 投票:0回答:2

我想为网络网格自动生成行号,我可以使用下面的代码来做到这一点

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

在第三步中,从我看来,我将网络网格的源属性赋予我的模型中保存数据的列表

 var grid = new WebGrid(source: WebgridPaging.Models.User.Users, rowsPerPage: 2,canPage:true,canSort:false);
asp.net-mvc-3 pagination webgrid
2个回答
1
投票

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

@model IEnumerable<MyViewModel>

而不是:

@model IEnumerable<SomeDomainModelProbablyComingFromAnAutogeneratedEFContext>

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

public int RowNumber { get; set; }

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)
© www.soinside.com 2019 - 2024. All rights reserved.