Jquery数据表插件,显示器和#34;表中没有可用的数据"排序/过滤数据后

时间:2015-08-10 07:25:06

标签: jquery ajax json datatables runtime

我使用JSON格式从服务器获取数据以填充DataTables表。 在$().ajax函数的成功部分中,我检查了并且响应成功了。 这是我桌子的Fiddle

从服务器返回的Json文件样本如下:

{
    "data": [
        {
            "__type": "TEST1.Campaign",
            "BookingID": 0,
            "CatalogueNumber": "IEM201343000007",
            "CampaignId": 34,
            "StartTime": "/Date(1438437600000)/",
            "EndTime": "/Date(1440079200000)/",
            "DurationPlayout": 3,
            "AdDuration": 5,
            "CampaignType": "facebook",
            "Stations": [
                "7mate.brisbane.au",
                "eleven.brisbane.au",
                "nine.brisbane.au"
            ],
            "Client_ID": 192,
            "ContactID": 5851,
            "AdvertiserID": 9228,
            "Active": true,
            "SModified": null,
            "DSP": "SiteScout",
            "ClientName": "",
            "AdvertiserName": "H A Consulting",
            "ContactName": "Aisling Bannan"
        }
    ] }

我在ajax响应后手动创建表,所以这样的数据表有什么问题吗? 当我按列过滤或排序表记录时,会出现此问题:

  

表格中没有数据

任何帮助都将不胜感激。

12/08/2015 更新代码:

我根据 Gyrocode的答案更新了this fiddle link中的代码。
1)当我单击刷新按钮时,表格再次初始化,但是当我点击排序列或想要搜索数据时它将为空。
2)每列的宽度设置不正确 3)某些列是隐藏的,但它们会在每行末尾的表格中显示 4)同样使用Orthogonal data,我需要在MM / DD / YY中使用日期时间,我在这个字段中使用.Net日期时间,但它似乎在Client-side.so中的JSON字符串中更改为TimeStamp,是有没有办法以客户格式制作?

1 个答案:

答案 0 :(得分:2)

  

<强>原因

您的代码存在许多语法错误和其他问题,这个答案太长,无法全部列出。

需要考虑的重要事项是:

  • 还需要使用包含隐藏列的正确数量th。稍后使用columnDefs隐藏某些列。
  • 生成tr / td的方法还可以,但会使代码变得复杂。 DataTables可以为您发送ajax请求,并将为您配置正确配置的返回数据。有关详细信息,请参阅Orthogonal data example
  

<强>样本

请参阅updated jsFiddle以了解更正后的代码。