【问题标题】:Loading Json to datatable将 Json 加载到数据表
【发布时间】:2013-11-17 21:05:17
【问题描述】:

我做错了什么? 这是我的代码:

           $.ajax({
            type: "POST",
            url: "GetData.asmx/GetEventMembers",
            data: "{'ShulID': '" + ShulID
               + "','EventID': '" + EventID + "'}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (data) 
                     {
                        $('#tblEventMembers').dataTable({                        
                            "aaData": eval(data.d)
                        });
                     },
            failure: function (msg) {
                alert(msg);
            }
        });

这是我的 json:

{
  "aaData": [
{
  "MemberID": 22,
  "FName": "hfhfh",
  "LName": "fhfhfh",
  "InvitationDate": null,
  "Approved": false,
  "Invited": 0
},
{
  "MemberID": 42,
  "FName": "fkfk",
  "LName": "vm.,v",
  "InvitationDate": null,
  "Approved": false,
  "Invited": 0
}
  ]}

我收到了这个错误:

有什么想法吗?

谢谢。

【问题讨论】:

  • JSON 看起来有效,我唯一能发现的就是尝试data: {ShulID : ShulID, EventID : EventID},,因为那里绝对不需要字符串,并且摆脱了糟糕的 eval() 调用

标签: c# jquery ajax json datatables


【解决方案1】:

ajax data 对象必须是键/值对。如果 value 是一个 Array,jQuery 会根据 value 序列化多个具有相同 key 的值

所以尝试改变这个:

 data: "{'ShulID': '" + ShulID
               + "','EventID': '" + EventID + "'}",

到这里:

data : {
 shulID : ShulID,
 EventID : EventID
},

【讨论】:

    【解决方案2】:

    终于解决了。 我的问题是我按原样使用了 json 响应。 现在我添加了:$.parseJSON(),它运行良好。 我的代码现在看起来像这样:

                $.ajax({
                type: "POST",
                url: "GetData.asmx/GetEventMembers",
                //data: {ShulID: iShulID, EventID: iEventID},
                data: "{'ShulID': '" + iShulID
                + "','EventID': '" + iEventID + "'}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                //sAjaxDataProp: "",
                success: function (jsonRes) 
                {
    
                    var oTable = $('#tblEventMembers').dataTable({
                        "bDestroy": true,
                        "aaData": $.parseJSON(jsonRes.d).aaData,
                        "aoColumns": [
                                        { "mData": "MemberID" },
                                        { "mData": "FName" },
                                        { "mData": "LName" },
                                        { "mData": "InvitationDate" },
                                        { "mData": "Approved" },
                                        { "mData": "Invited" }
                                     ]
                    });
                },
                failure: function (msg) {
                    alert(msg);
                }
            });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-11
      • 1970-01-01
      相关资源
      最近更新 更多