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

And*_*sch 4 c# linq vb.net asp.net linq-to-sql

我正在使用a LinqDataSource来填充GridViewASP.NET中的基本内容.用户可以过滤结果,所以我使用了几个WhereParametersWhere内部LinqDataSource.

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

当使用LinqDataSource's OnSelect方法时,e.Result有我之后的数据,但是我GridView PageSize的设置为20,这意味着LinqDataSource(正确地说)只获取前20个记录.

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

And*_*sch 6

好的,找到解决方案由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>;
Run Code Online (Sandbox Code Playgroud)