2017-01-19 1 views
1

Я пытаюсь удалить/удалить строки из datatable на основе некоторого условия. Я попробовал следующий код.Как удалить или удалить строку в jquery datatable на основе условия

rowCallback: function (row, data, index) { 
       if (data["ServiceID"] == 0) { 
        $(row).remove(); 
       } 
      }, 

который, похоже, не работает. Хотя $(row).hide() работает нормально, но он просто скрывает строки, которые не удаляют или не удаляют их из данных.

ответ

1

Эта функция не удаляет строку, просто устанавливая ее внутри как null.

$(row).html("");// not deleting setting inside null. 

Вы можете использовать этот способ, при создании элементов (инициализации) вы не можете удалить строку это само, но вы можете установить его в качестве нуля. Если вы хотите удалить после инициализации, вы можете сделать это:

1) удаленные элементы добавляют их внутрь массива;

2) После инициализации удалите из datatable с помощью функции remove(), а затем используйте функцию draw для повторного рисования содержимого таблицы.

или

альтернативный способ предварительно создать DataTable, удалите невысказанные ДАННЫЕ.

+0

я пытался $ (строка) .delete() показывает TypeError:. $ (...) удалить не ошибка функции. я использую условие в rowCallback –

0

Вы должны использовать remove() метод, после удаления, необходимо redraw за столом

$(document).ready(function() { 
    var table = $('#example').DataTable(); 

    $('#example tbody').on('click', 'tr', function() { 
     if ($(this).hasClass('selected')) { 
      $(this).removeClass('selected'); 
     } 
     else { 
      table.$('tr.selected').removeClass('selected'); 
      $(this).addClass('selected'); 
     } 
    }); 

    $('#button').click(function() { 
     table.row('.selected').remove().draw(false); 
    }); 
}); 

проверки DataTables удалить строку docs или работать jsfiddle

0

Вы можете использовать fnDeleteRow функцию вместе с fnGetPosition функции.

var ePos = oTable.fnGetPosition('THE_ROW_ELEMENT'); 
rowCallback: function (ePos, data, index) { 
if (data["ServiceID"] == 0) { 
       oTable.fnDeleteRow(ePos); 
      } 
},   

Я знаю, что это другой подход, но подумал, что это может вам помочь.

The answer to this question might help you to understand the functionality of these functions