2012-05-03 17 views
0

質問が正しいかどうか分かりませんが、jqueryデータテーブルプラグインを使用してdatasourceJsonからLINQに変換しています。LINQの結果セットから列名を削除する

私の問題は、私の結果セットには、Jquery DataTable(クライアント)が必要としない私のデータテーブル(ADT)のカラムの名前が含まれていたということです。

jsonに変換する前にLINQ結果から列名を取り除くか、削除することは可能ですか?

ここは私のサーバーコードです。

context.Response.ContentType = "application/json"; 
var y = from t in dt select t; 
ret = JsonConvert.SerializeObect(y, Formatting.None); 

context.Response.Write(ret); 

上記のコードは、すべての列名を含む結果を返します。

[ 
[ 
    "COL1": 1, 
    "COL2": "R1C2" 
}, 
{ 
    "COL1: 2, 
    "COL2": "R2C2" 
}, 
{ 
    "COL1": 3, 
    "COL2": "R3C3" 
} 
] 

jqueryのDataTableのプラグインから基づいて、必要な出力がなければなりません:

[ 
[ 
    1, 
    "R1C2" 
], 
[ 
    2, 
    "R2C2" 
], 
[ 
    3, 
    "R3C3" 
] 
] 
も、私はここでJSON.NET

を使用しています、私は私のDT

dsTableAdapters.dtTableAdapter adap = new dsTableAdapters.dtTableAdapter(); 
adap.Fill(ds.dt); 

出力JSONを読み込む方法です

+0

ただし、データの表の列名をどのように指定しますか? – bondythegreat

+0

私はあなたの質問を理解していませんが、ちょうど私はLINQからTを行うDTを選択する新しい{T.COL1、T.COL2}を選択してjsonに変換 – user1215811

+0

コードを投稿してください。 jsonとb)クライアント側のjsonをdatatableで消費します。 – Marc

答えて

0
var y = (from t in dt.AsEnumerable() 
     select new { COL1= t.Field<string>("FirstName"), 
         COL2 = t.Field<string>("LastName") }).ToList(); 

Assuming dtはあなたのDataTableで、FirstNameとLastNameという2つのカラムがあり、それらのカラムだけを出力したいとします。

これは動作します。テスト済み。

http://msdn.microsoft.com/en-us/library/system.data.datatableextensions.asenumerable.aspx

のDataTableにAsEnumerable拡張メソッドはでDataRowのコレクションを返します。必要なフィールドを使ってLinq Resultから投影を行います。これはdataRow型なので、各列の種類を指定する必要があります。

+0

Shyjuありがとう、しかし、私はすでにそのコードを試して、結果は同じです。 私は1列だけを含めるとうまくいくと思います。 var y =(from dt from t.FirstName).ToList(); – user1215811

+0

は、選択部分に出力したい列のみを使用します – Shyju

+0

@ user1215811:更新された回答を試してください。 – Shyju

関連する問題