2015-10-26 4 views
2

Итак, я сделал кучу поисковых запросов и ничего не работает с моим приложением.DataTables позволяют сортировать динамически загружаемую колонку

У меня есть таблица, что я создаю, после того, как это делается создаются инициализирует DataTables

expiredEmailsTable = $selector.dataTable({ 
    "iDisplayLength": 100 
}); 

Один из моих колонок (ТД) является просто значком загрузки в то время как мой Аякс вызов фактически запрашивает базу данных, чтобы получить Значение.

Как только я получаю ответ от ajax обратно, я меняю html td с значка загрузки на фактическое значение.

Проблема заключается в том, что, когда данные данных инициализируют таблицу, столбец бессмыслен (учитывая, что это только значок загрузки). То, что я хочу, - это когда все загружается, чтобы иметь возможность сортировать (новое значение - это число). по сути, после каждого вызова ajax мне нужен способ «обновить» данные, чтобы он мог прибегать. Я пробовал следующее без везения:

$selector.trigger("update");        
$selector.dataTable().fnDraw(); 
expiredEmailsTable.api().draw(false); 
$selector.dataTable().api().draw(true); 
$selector.DataTable().draw(true); 

У кого-нибудь есть предложения? Насколько я могу судить, я пробовал все возможные комбинации, которые я могу найти, учитывая их документы. Я НЕ добавляю новую строку или что-то еще, просто изменяя значение 1 конкретного столбца.

+0

«Когда я получаю ответ от ajax обратно, я меняю html td с значка загрузки на фактическое значение.» «Как вы это делаете? Похоже, вы не используете dataTables AJAX, но вводите контент в таблицу после внешнего вызова AJAX? – davidkonrad

ответ

2

Когда Datatable визуализируется из таблицы HTML, он должен определять типы данных «на лету», чтобы определить, как сортировать столбцы. Я рекомендую вам попробовать применять модель колонки в таблицу следующим образом (это просто пример):

$selector.dataTable({ 
     columns: [ 
      {title: 'String column1', 'type': 'string'}, 
      {title: 'String column2', 'type': 'string'}, 
      {title: 'String column3', 'type': 'string'}, 
      {title: 'Number column', 'type': 'number'} 
      ] 
    }); 

«типа» является то, что говорит DataTables, что делать, когда вам нужно сортировать.

+0

Итак, хотя это может быть «лучшей практикой» или как мне это нужно, я не понимаю, как это поможет моей текущей проблеме? – Travis

+0

Трэвис, знаешь ли ты свои столбцы раньше времени или всегда всегда динамический стол, и вы строите HTML на лету, прежде чем применять к нему DataTable? В принципе, если вы знаете свои метаданные, продолжайте и сообщите DataTable, как будут выглядеть ваши данные (в основном, что я пытался передать). – Vadim

+0

Это как-то хорошее очевидное предложение, но dataTables содержит много «кэшированных» внутренних компонентов, которые он использует, чтобы сортировать столбцы быстро и в соответствии с типом данных. – davidkonrad

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