2009-07-27 3 views
1

私はDataTableにコピーするLinqクエリを持っています。このクエリを使用して、グリッドビューを作成します。私は "key"と "count"のグループを使用しています。これは、リピータを使ったマスター/ディテールグリッドビューのaspxページで評価します。Linqクエリページングで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)元のDataTableを使用する場合は、直接私がページングを持っているが、私はLINQのクエリを実行し、(dtTaskOrderTable)新しいデータテーブルに戻ってそれをコピーしたら、私はページング機能を失います。

また、アイテムが「アイテム」の一部である場合、列名(「オプション」など)から値を取得するにはどうすればよいですか?

ご協力いただければ幸いです。 おかげで、 ChrisB

答えて

0

はそれがページングにICollectionインターフェイスを必要と私はそれ

を削除します前の回答は無視してください。 IQuerableは(<の(T>)>)

一覧<を一覧表示しますが、ICollectionインターフェイス

を実装するように動作しますので、あなたが

gridview1.DataSource = dtTaskOrderTable.ToList(); 
を必要と動作しません IEnumerableをNOREどちらも
関連する問題