この質問では、C#のIEnumerableに列を追加します。次のコードを取得しました。
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" );
データは正しく表示されますが、グリッドはソートされなくなります。ie2の代わりにieを渡すと、問題なくソートされます。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で動作させ、正しくソートするにはどうすればよいですか?