【问题标题】:Get dataset to work with datatables ajax获取数据集以使用数据表 ajax
【发布时间】:2015-05-28 14:34:35
【问题描述】:

我有这样的课:

public class Group
{
     public int RecID { get; set; }
     public int GroupID { get; set; }
     public int Name { get; set; }
}

我得到了这些项目的 IList:IList<Group>();

现在我正在尝试返回此列表的 javascript 数组,以便可以将其与 jquery datatables 一起使用

所以我在我的控制器中尝试了以下操作:

return Json(CacheHelper.Groups, JsonRequestBehavior.AllowGet);

但这给了我以下结果:

[
    {"GroupID":"1","Name":"Group 1","RecID":5637144589},
    {"GroupID":"2","Name":"Group 2","RecID":5637145326}
]

如何让它与数据表一起使用?

我尝试过类似的方法:

$('#example').dataTable( {
    "ajax": '/ajax/data.json'
    "columns": [
        "Name",
        "GroupID",
        "RecID"
    ]
} );

但这无法加载数据。我认为这可能是因为数据的 json 格式错误,因为它期望数据像

预期的数据格式

{
    data: [
        1,
        "Group 1",
        5637144589
    ],
    [
        2,
        "Group 2",
        5637145326
    ]
}

所以我尝试了以下 linq 来更改数据:

 CacheHelper.Groups.Select(x => new string[] { x.GroupID, x.Name, x.RecID });

但这给了我一个数组数组,没有data 位。

[
    ["1","Group 1",5637144589],
    ["2","Group 2",5637145326]
]

有没有办法用 linq 获取数据位?

所以我想问题是

  • 有什么方法可以使用第一个json结果数据集并让它与js一起工作

如果没有

  • 有什么方法可以使用 linq 使数据集看起来像预期的数据

【问题讨论】:

    标签: javascript c# json linq datatables


    【解决方案1】:

    您需要使用以下初始化代码来匹配您的数据结构:

    $('#example').dataTable( {
        "ajax": {
           "url": '/ajax/data.json',
           "dataSrc": ""
        },
        "columns": [
            { "data" : "Name" },
            { "data" : "GroupID" },
            { "data" : "RecID" }
        ]
    });
    

    来自dataSrc属性说明:

    请注意,如果您的 Ajax 源只是返回一个数据数组到 显示,而不是对象,将此参数设置为空 字符串。

    【讨论】:

    • 哇,知道怎么做就这么简单!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-25
    • 2020-11-24
    • 2012-12-14
    • 2018-02-19
    • 1970-01-01
    相关资源
    最近更新 更多