2014-01-11 5 views
1

Я использую DataTable из http://datatables.net/JQuery DataTable Поиск показывает удалены данные

Мой Сценарий изменить содержание таблицы, основываясь на каком-то событии.

<table cellpadding="0" cellspacing="0" border="0" id="dataTable0"> 
    <thead> 
     <tr style="width: 100%;">       
     <th>Campaign Name</th> 
     <th>Schedule</th> 
     <th>List</th> 
     </tr> 
    </thead> 
    <tbody id="CampaignTableViewBody"></tbody> 
</table> 

INITIALIZED СЦЕНАРИЙ ДЛЯ DataTable

$(document).ready(function() { 
    oTable = $('#dataTable0').dataTable({ 
    "bJQueryUI": true, 
    "bScrollCollapse": false, 
    "sScrollY": "200px", 
    "bAutoWidth": true, 
    "bPaginate": true, 
    "sPaginationType": "full_numbers", //full_numbers,two_button 
    "bStateSave": false, 
    "bInfo": true, 
    "bFilter": true, 
    "iDisplayLength": 25, 
    "bLengthChange": true, 
    "aLengthMenu": [[10, 25, 50, 100, -1], [10, 25, 50, 100, "All"]] 
    }); 
}); 

ЗАПОЛНЕНИЯ ДАННЫХ ДИНАМИЧЕСКИ

$("#CampaignTableViewBody").empty(); 
$("#CampaignTableViewBody").append(
    '<tr>'+ 
     '<td>'+obj.name+'</td>'+ 
     '<td>'+obj.startTime+'</td>'+ 
     '<td>'+obj.listTemplateUsed+'</td>'+        
     '</tr>'); 

Я один выпадающий сказать Выбрать CLASSROOM: Я заполняю все данные Студент в таблице принадлежащего к Selected классу динамически ,

Say класс «А» Selected, то я покажу «Rahul», «Джейсон» в таблице

Теперь если пользователь изменит номер класса, то я удаление всех данных из таблицы с помощью $("#CampaignTableViewBody").empty(); и перебора свежих данных в таблице.

Скажите, что класс «B» выбран, тогда я удаляю все данные в таблице, затем я покажу «Mayur», «John» в таблице.

Но проблема здесь в том, что я ищу в окне поиска в datatable, снабженном Word «Rahul», тогда он показывает строки, которые не должны быть case, потому что класс «B» выбран, а класс B не имеет Rahul ,

При заполнении данных в таблице все идет хорошо, я вижу только 2 строки, т.е. «Майур» и «Джон». Только проблема заключается в поиске таблицы данных, которая дает более старые данные в результате, которые больше не существуют.

Любая идея, как ее преодолеть.

+0

Вы не понимаете, что плагин не просто манипулирует html. Он хранит html, а также данные в кешированных массивах. Вам нужно использовать API-интерфейс плагина для добавления и удаления данных. – charlietfl

+0

@charlietfl: Вы правы. Я идиот, что я не читал api правильно и кодировал много кода в стиле выше. Можете ли вы сказать мне обходное решение. – Jayesh

+0

Что значит обходной путь? Почему вы не можете использовать API? – charlietfl

ответ

0

Вы должны 'уничтожить' предыдущего DataTable

$("#dataTable0").dataTable().fnDestroy(); // Destroy the previous table 
$("#CampaignTableViewBody").empty(); // Empty (remove any DOM elements) 


$("#CampaignTableViewBody").append( 
    '<tr>'+ 
     '<td>'+obj.name+'</td>'+ 
     '<td>'+obj.startTime+'</td>'+ 
     '<td>'+obj.listTemplateUsed+'</td>'+        
     '</tr>'); // Append the new information 

$("#dataTable0").dataTable(settings); // Recreate the datatable 

Надеется, что это работает для Вас! Подробнее Функции Api здесь: http://datatables.net/api

Удачи вам в реализации.

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