我有一个Linq查询,我将它复制到一个DataTable中,然后用它来填充gridview。我使用的是一个按“键”和“计数”分组的方法,我在aspx页面中为带有中继器的master/detail gridview求值。
我遇到的问题是,gridview数据源和绑定到datatable没有向我显示作为数据一部分的任何其他页面。
我的问题是:
// 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();
如果我直接使用原始数据表(dtDataTable_GridView),我有分页功能,但是一旦我执行Linq查询并将其复制回新的数据表(dtTaskOrderTable),我就失去分页功能。
另外,如果列名是“Items”的一部分,如何从列名(例如“Option”)中获取值?
任何帮助都将不胜感激。
谢谢,
克里斯布