2015-08-10 5 views
1

Я использую формат JSON для получения данных с сервера для заполнения таблицы DataTables. В успешной части функции $().ajax, я проверил и ответ вернется успешно. это Fiddle за моим столом:JQuery datatables Plug-In, дисплей «Нет данных в таблице» после сортировки/фильтрации данных

Образец 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 Обновленный код:

Я обновил код в this fiddle link на основе ответа Gyrocode в.
1) Когда я нажимаю кнопку обновления, таблица снова инициализируется, но она будет пустой, когда я нажимаю сортировку столбцов или хочу искать данные.
2) ширина каждого столбца установлена ​​неправильно.
3) некоторые столбцы скрыты, но они показаны в таблице в конце каждой строки.
4) Также для использования Orthogonal data мне нужно иметь дату и время в MM/DD/YY, я использовал .Net datetime для этого поля, но, похоже, он изменился на TimeStamp в строке JSON на Client-side.so, есть ли какие-либо способ сделать это в формате custome?

+0

добавить данные в тело таблицы не только к таблице. –

+1

Были проблемы с вашей скрипкой, но не уверен, что это то, что вызывает вашу проблему, или просто проблема с примером кода. Во-первых, идентификатор таблицы является «примером», но он называется «Элементы» в вашей JS. Измените идентификатор таблицы на «Элементы». Во-вторых, в вашем JS у вас есть дополнительный ')}' после 'return false'. Дайте мне знать, если это просто ошибки скрипта или проблема с вашим кодом. – jonmrich

+0

@jonmrich Спасибо, что сообщили мне о проблемах. да. они исправляют ошибки, которые я исправил. –

ответ

2

ПРИЧИНА

Есть много ошибок синтаксиса и другие проблемы с вашим кодом, этот ответ был бы слишком долго перечислять их все.

Важные вещи, чтобы рассмотреть:

  • нужно использовать правильное число th, который включает скрытые столбцы, а также. Спрячьте columnDefs, чтобы скрыть определенные столбцы.
  • Ваш подход с генерацией tr/td в порядке, но делает код сложным. DataTables может отправить запрос ajax для вас и будет обрабатывать возвращенные данные для вас с правильной конфигурацией. См. Orthogonal data example для получения дополнительной информации.

DEMO

Пожалуйста, смотрите updated jsFiddle для демонстрации исправленного кода.

+0

благодарю вас за ваш ответ и приятную Fiddle. на самом деле у меня были некоторые проблемы с опечатками в Fiddle, но я обновил его. как вы упомянули, проблема заключалась в определении моего определения данных (как ваш код): var table = $ ('# Items'). DataTable ({ columnDefs: [ {целей: [6,7,8,9,10] ], visible: false} ] }); –

+0

У меня проблема с этим решением. Фактически, таблица должна быть инициализирована при загрузке страницы и заполнена некоторыми изменениями текста, поэтому я должен ее инициализировать на каждом текстовом переписании? он получает ошибку, и когда я пытаюсь использовать http://datatables.net/manual/tech-notes/3, нижний колонтитул не будет работать правильно –

+0

Пожалуйста, создайте jsFiddle, демонстрирующий проблему, иначе трудно понять, что вы пытаясь добиться. –

Смежные вопросы