我正在使用LinqDataSource
填充ASP.NET中的基本GridView
。用户可以过滤结果,因此我在WhereParameters
中使用了一些Where
和LinqDataSource
。
我的客户端已请求将筛选结果导出到文件的选项。很容易将数据传输到文件中,但我宁愿不重写代码隐藏中的所有where子句。我只想提取完整的结果集,最好是使用已配置的LinqDataSource
。
使用LinqDataSource
的{{1}}方法时,OnSelect
包含我之后的数据,但我的e.Result
GridView
设置为20,这意味着PageSize
(正确地说)只获取前20个记录。
无论如何都要掌握整个数据集?
答案 0 :(得分:6)
好的,发现solution由AspGuy,Aref Karimi提供。
以下内容将使用LinqDataSource
的配置检索所有记录。甜蜜的!
IDataSource source = (IDataSource)myLinqDataSource;
LinqDataSourceView view = source.GetView("DefaultView") as LinqDataSourceView;
DataSourceSelectArguments args = new DataSourceSelectArguments();
args.RetrieveTotalRowCount = view.CanRetrieveTotalRowCount;
args.SortExpression = view.OrderBy;
List<MyObject> objects = view.Select(args) as List<MyObjects>;