我正在使用 LinqDataSource
在 ASP.NET 中填充基本的 GridView
。用户可以过滤结果,所以我在 WhereParameters
中使用了一些 Where
和 LinqDataSource
。
我的客户要求提供将过滤结果导出到文件的选项。很容易将数据通过管道传输到文件中,但我不想重写代码隐藏中的所有 where 子句。我只想提取完整的结果集,最好使用已经配置的 LinqDataSource
。
当使用 LinqDataSource
的 OnSelect
方法时, e.Result
有我想要的数据,但我的 GridView
PageSize
设置为 20,这意味着 LinqDataSource
(正确的)只获取前 20 条记录。
有没有办法掌握整个数据集?
最佳答案
好的,找到了 AspGuy,Aref Karimi 提供的 solution。
以下将使用 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>;
关于c# - Linq-to-Sql:使用 LinqDataSource 以编程方式检索数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1880671/