在这个问题中,Add a column to IEnumerable in C#,我得到以下代码:
var db = Database.Open("LOS");
var ie = db.Query(sqlAssignments);
// make a new ie2 that has an extra calculated field
var ie2 = processes.Select( e => new { e.ACCT, e.RefID, color = e.RefID + 9000000 });
var grid = new WebGrid(ie2.ToList(), rowsPerPage : 50, ajaxUpdateContainerId : "grid" );
数据正确显示,但网格不再排序。如果你通过 ie,而不是 ie2,它排序很好。如果我执行 ToList() 或不执行,就会出现问题。显然ie 和ie2 之间有一些区别。这是 ie 的 GetType:
System.Collections.ObjectModel.ReadOnlyCollection`1[System.Object]
对于 ie2:
System.Linq.Enumerable+WhereSelectEnumerableIterator`2[System.Object,<>f__AnonymousType0`10[System.Object,System.Object,System.Object,System.Object,System.Object,System.Object,System.Object,System.Object,System.Object,System.Object]]
我应该对 ie2 做些什么才能使其与 WebGrid 一起工作并正确排序?