Ich habe eine Linq-Abfrage, die ich in eine DataTable kopieren, die dann verwendet wird, um eine Gridview zu füllen. Ich verwende eine Gruppe mit "key" und "count", die ich in der aspx-Seite für eine Master/Detail-Gridview mit einem Repeater auswerte.Linq-Abfrage mit DataTable mit Paging
Das Problem, das mir begegnet, ist, dass die Gridview-Datenquelle und die Bindung an die Datentabelle mir keine zusätzlichen Seiten präsentiert, die Teil der Daten sind. Meine Frage ist:
// 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();
Wenn ich die Original-Datentabelle verwenden (dtDataTable_GridView) direkt habe ich Paging aber sobald ich die Linq-Abfrage tun und kopieren Sie sie zurück in ein neues Datatable (dtTaskOrderTable) Ich verliere die Paging-Funktion.
Wie bekomme ich auch einen Wert von einem Spaltennamen ("Option" zum Beispiel), wenn es Teil von "Items" ist?
Jede Hilfe wäre willkommen. Danke, ChrisB