我正在使用 LinqDataSource 在 ASP.NET 中填充基本的 GridView。用户可以过滤结果,所以我在 WhereParameters 中使用了一些 WhereLinqDataSource

我的客户要求提供将过滤结果导出到文件的选项。很容易将数据通过管道传输到文件中,但我不想重写代码隐藏中的所有 where 子句。我只想提取完整的结果集,最好使用已经配置的 LinqDataSource

当使用 LinqDataSourceOnSelect 方法时, 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/

10-11 02:09