Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用带分页的数据表进行Linq查询_Linq_Datatable_Paging - Fatal编程技术网

使用带分页的数据表进行Linq查询

使用带分页的数据表进行Linq查询,linq,datatable,paging,Linq,Datatable,Paging,我有一个Linq查询,我将它复制到一个DataTable,然后用它来填充gridview。我在aspx页面中使用“键”和“计数”分组,用于带有中继器的主/详细gridview 我遇到的问题是,gridview数据源和数据表的绑定没有向我提供作为数据一部分的任何其他页面。 我的问题是: // Using Linq generate the query command from the DataTable var query = from c in dtDataTable_GridView.AsEn

我有一个Linq查询,我将它复制到一个DataTable,然后用它来填充gridview。我在aspx页面中使用“键”和“计数”分组,用于带有中继器的主/详细gridview

我遇到的问题是,gridview数据源和数据表的绑定没有向我提供作为数据一部分的任何其他页面。 我的问题是:

// Using Linq generate the query command from the DataTable
var query = from c in dtDataTable_GridView.AsEnumerable()
group c by c.Field<string>("CLIN") into g
select new
{
    Key = g.Key,
    Count = g.Count(),
    Items = from i in g                                      
        select new
        {
            CLIN = i.Field<string>("CLIN"),
            SLIN = i.Field<string>("SLIN"),
            ACRN = i.Field<string>("ACRN"),
            CLINType = i.Field<string>("CLINType"),
            Option = i.Field<string>("Option"),
            Unit = i.Field<string>("Unit")
        }
};

// Use extension methods to create new DataTable from query
dtTaskOrderTable = query.CopyToDataTable();

// Set the datasource
gridview1.DataSource = dtTaskOrderTable;

// Bind to the GridView
gridview1.DataBind();  
//使用Linq从数据表生成查询命令
var query=来自dtDataTable_GridView.AsEnumerable()中的c
c组由c.Field(“CLIN”)改为g组
选择新的
{
键=g键,
Count=g.Count(),
项目=从i到g
选择新的
{
CLIN=i.字段(“CLIN”),
SLIN=i.字段(“SLIN”),
ACRN=i.字段(“ACRN”),
CLINType=i.字段(“CLINType”),
选项=i.字段(“选项”),
单位=i.字段(“单位”)
}
};
//使用扩展方法从查询创建新的DataTable
dtTaskOrderTable=query.CopyToDataTable();
//设置数据源
gridview1.DataSource=dtTaskOrderTable;
//绑定到GridView
gridview1.DataBind();
如果我直接使用原始数据表(dtDataTable_GridView),我有分页功能,但一旦我执行Linq查询并将其复制回新的数据表(dtTaskOrderTable),我就失去了分页功能

另外,如果列名称是“Items”的一部分,如何从该列名称(例如“Option”)中获取值

任何帮助都将不胜感激。 谢谢
ChrisB

请忽略前面的答案,我将删除它

它需要ICollection接口进行分页。 无论是IEnumerable还是iquirable都不起作用

列表)将作为列表实现Icollection接口

所以你需要

gridview1.DataSource = dtTaskOrderTable.ToList();