使用datagridview虚拟模式时如何自定义分页的特定代码
How to customize a specific code for pagination when working with datagridview virtual mode on
我正在读取 xml 文件而不是数据库 table 并以这种方式进行分页
XDocument document = XDocument.Load(xmlFilePath);
var query = from r in document.Descendants("orders")
select new
{
OrderID = r.Element("OrderID").Value,
CustomerID = r.Element("CustomerID").Value,
EmployeeID = r.Element("EmployeeID").Value
};
query = query.OrderBy(sortColumn + " " + OrderDirection);
query = query.Skip(lowerPageBoundary - 1 * rowsPerPage).Take(rowsPerPage);
但问题是 lowerPageBoundary
值是由另一个 class 控制的,我从 MSDN link https://msdn.microsoft.com/en-us/library/ms171624.aspx?f=255&MSPPError=-2147217396
我正在遵循 MSDN 给出的相同代码,但我的分页例程与下面的代码不兼容并且无法正常工作。
query = query.Skip(lowerPageBoundary - 1 * rowsPerPage).Take(rowsPerPage);
第一次 lowerPageBoundary
是 0 所以 skip 的值为 0 并且 take 的值为 16 当同一行第二次执行时 lowerPageBoundary
是 16-16=0
所以我的请求是有人请查看我在这里提供的 MSDN link 并查看控制 lowerPageBoundary
值的缓存 class 并建议我如何自定义LINQ 跳过并采取 MSDN 代码方案。
谢谢
看来你不必从lowerPageBoundary中扣除rowsPerPage。 IE。对于第一页 lowerPageBoundary = 0,rowsPerPage = 16,因此您需要跳过 0 条记录并取 16。对于第二页 lowerPageBoundary = 16,因此您需要跳过 16 行,然后取下 16 行,依此类推。
IE。您应该使用下一个代码:
query = query.Skip(lowerPageBoundary).Take(rowsPerPage);
我正在读取 xml 文件而不是数据库 table 并以这种方式进行分页
XDocument document = XDocument.Load(xmlFilePath);
var query = from r in document.Descendants("orders")
select new
{
OrderID = r.Element("OrderID").Value,
CustomerID = r.Element("CustomerID").Value,
EmployeeID = r.Element("EmployeeID").Value
};
query = query.OrderBy(sortColumn + " " + OrderDirection);
query = query.Skip(lowerPageBoundary - 1 * rowsPerPage).Take(rowsPerPage);
但问题是 lowerPageBoundary
值是由另一个 class 控制的,我从 MSDN link https://msdn.microsoft.com/en-us/library/ms171624.aspx?f=255&MSPPError=-2147217396
我正在遵循 MSDN 给出的相同代码,但我的分页例程与下面的代码不兼容并且无法正常工作。
query = query.Skip(lowerPageBoundary - 1 * rowsPerPage).Take(rowsPerPage);
第一次 lowerPageBoundary
是 0 所以 skip 的值为 0 并且 take 的值为 16 当同一行第二次执行时 lowerPageBoundary
是 16-16=0
所以我的请求是有人请查看我在这里提供的 MSDN link 并查看控制 lowerPageBoundary
值的缓存 class 并建议我如何自定义LINQ 跳过并采取 MSDN 代码方案。
谢谢
看来你不必从lowerPageBoundary中扣除rowsPerPage。 IE。对于第一页 lowerPageBoundary = 0,rowsPerPage = 16,因此您需要跳过 0 条记录并取 16。对于第二页 lowerPageBoundary = 16,因此您需要跳过 16 行,然后取下 16 行,依此类推。 IE。您应该使用下一个代码:
query = query.Skip(lowerPageBoundary).Take(rowsPerPage);