2015-10-02 2 views
2


Для отображения моих данных в таблице я использую плагин dataTable. Поскольку у меня большой объем данных, я использую обработку серверов. Моя проблема в том, что у меня есть некоторые поля данных в моем JSON, которые я хотел бы изменить, прежде чем отображать его в таблице.

Пример: Я получаю значения, доступно ли какое-либо оборудование или нет. Это записывается как «», 0 или 1 в базе данных, для его отображения я хотел бы преобразовать эти значения в «Да» или «Нет» или «Нет».

Чтобы инициализировать таблицу я использую следующий код:JavaScript: Обработка серверных данных Datatables - изменение значений перед отображением

table = $('#table').DataTable({ 
    "ajax": "myurl", 
    "sPaginationType": "full_numbers", 
    "sAjaxDataProp":"", 
    "deferRender": true, 
    columns: [ 
    {data: 'attributes.0.value'}, 
    {data:'attributes.1.value'}, 
    {data:'attributes.2.value'}, 
    {data:'attributes.3.value'}, 
    {data:'attributes.4.value'}], 
}); 

Чтобы связать функцию conerting непосредственно в массиве данных не работает (например,

{data: convert(attributes.0.value)}, 

Есть некоторые параметры для datatable plugin, который я пробовал, но я не уверен, могут ли они решить мои проблемы. Это пример из документации плагина:

$('#example').dataTable({ 
    "ajax": { 
     "url": "data.json", 
     "data": function (d) { 
      d.extra_search = $('#extra').val(); 
     } 
     } 
}); 


Могу ли я использовать параметр данных для решения моих проблем (когда я это пробовал, d всегда пуст), или есть ли еще одна возможность изменить мои значения, прежде чем я их интегрирую в таблицу?

ответ

4

Вы могли Обрабатывает JSON в ajax.dataSrc функции, но так как вы на самом деле просто нужно изменить, как значения приведены я бы для column rendering:

columns: [ 
    { data: 'attributes.0.value', 
    render: function(data, type, row) { 
     switch(data) { 
      case '0' : return 'No'; break; 
      case '1' : return 'Yes'; break; 
      default : return 'N/A'; break; 
     } 
    }, 
    { data: 'attributes.1.value' }, 
    { data: 'attributes.2.value' }, 
    { data: 'attributes.3.value' }, 
    { data: 'attributes.4.value' } 
] 

Используйте выше render метод к каждому из значения столбца, которые нужно преобразовать.

+0

Спасибо, это именно то, что я искал :-) – user2550641

+0

'render' часть становится излишней, если несколько столбцов имеют множественную логику отображения –

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