2012-09-19 29 views
0

我使用一个查询获取所说的50条记录并将其传递给数据表。此记录然后以表格格式显示。显示屏有分页显示,每次显示10条记录。有一个工具可以移动到下一组或上一组记录,或前进或后退一个记录。行号的数据表计算方法过滤器

我必须找到当前可见记录集的列的最小值和最大值。我打算使用Compute方法,但我不确定它是否允许在数据表中的列以外的任何地方进行过滤。

我必须在我的查询中包含行号还是有更好的解决方案(沿着下面提到的行)?

CType(dtLineup.Compute("Min(ArrivalDate)", dt.row(2) to dt.row(12)), Date) 

回答

1

有没有像在MSDN on DataColumn.Expression你的伪代码。如您所说,您可以在查询中包含行号,但另一种方法是将行号列添加到数据表中,并在过滤器表达式中使用该行号。

DataColumn col = new DataColumn("rownumber", typeof(int)); 
col.AutoIncrement = true; 
col.AutoIncrementSeed = 1; 
datatable.Columns.Add(col); 

另一种方法可能是通过LINQ做寻呼(跳取),并计算聚合函数返回的行。但这可能是您当前应用程序结构的重大改变。

+0

感谢您的帮助。我已经设法使用Linq(Skip Take)实现分页。我已经在上面使用了一个关于计算方法的单独问题[link](http://stackoverflow.com/questions/12511238/datatable-compute-method-convert-string-column-to-date)。任何输入将不胜感激。 – Nilanjan