Linq-to-Sql:使用LinqDataSource以编程方式检索数据

时间:2009-12-10 12:28:54

标签: c# asp.net vb.net linq linq-to-sql

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

我的客户端已请求将筛选结果导出到文件的选项。很容易将数据传输到文件中,但我宁愿不重写代码隐藏中的所有where子句。我只想提取完整的结果集,最好是使用已配置的LinqDataSource

使用LinqDataSource的{​​{1}}方法时,OnSelect包含我之后的数据,但我的e.Result GridView设置为20,这意味着PageSize(正确地说)只获取前20个记录。

无论如何都要掌握整个数据集?

1 个答案:

答案 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>;