0

不知道我的问题是否正确或我的计划是否正确,但我正在使用数据jquery表插件并datasourceJson转换LINQ结果中获取它。

我的问题是,我的结果集包括我认为 Jquery DataTable(client) 不需要的 datatable(ado) 中的列名称。

如果我在将其转换为 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);

上面的代码返回一个包含所有列名的结果。我也在使用 JSON.NET

这是我如何填充我的 dt

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

输出 JSON:

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

基于 jquery Datatable 插件的所需输出必须是:

[
[
    1,
    "R1C2"
],
[
    2,
    "R2C2"
],
[
    3,
    "R3C3"
]
]
4

1 回答 1

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

假设 dt 是您的 DataTable 并且您在其中有 2 个名为 FirstName 和 LastName 的列,并且您只想输出那些。

这将起作用。经测试。

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

DataTable 上的AsEnumerable扩展方法将返回 DataRows 的集合。然后您使用必填字段从您的 Linq 结果中进行投影。由于它是 dataRow 类型,因此您需要指定每个列的类型。

于 2012-05-04T00:44:01.763 回答