JQuery DataTables - Удалить fnFilter и отобразить все результаты

У меня сейчас есть таблица данных, в которой есть кнопка для каждой записи, которая при нажатии отображает другую информацию для этой учетной записи. Когда это происходит, я вызываю fnFilter (), чтобы отфильтровать эту конкретную строку, чтобы никакие другие не отображались, и пользователь знал, что отображаемая мной вспомогательная информация предназначена для этой конкретной учетной записи. Я бы хотел сделать следующее: когда пользователь снова щелкает на панели инструментов поиска, он скрывает отображаемую мной вспомогательную информацию, затем очищает фильтр и показывает все доступные исходные записи. Все работает нормально, за исключением того, что фильтр не очищается, поэтому отображается только первоначально выбранная строка.

Не уверен, что мне не хватает. Я пробовал все, от использования fnFilter ('') до fnDraw () и fnReloadAjax (). Ни один из них (или любая их комбинация), похоже, не работает!

ОБНОВЛЕНИЕ Кажется, я решил изолировать проблему. Если я удалю столбец № из fnFilter (accountid, 7), использование fnFilter ('') повторно отобразит все записи. Однако мне действительно нужно фильтровать по этому конкретному столбцу, поскольку это единственный столбец, который содержит уникальные значения для каждой записи. Любые идеи? Я пытался использовать fnFilter ('', null), но безуспешно.

Вот мой код:

var oTable = $('.mypbhs_accounts').dataTable({
        "bProcessing": true,
        "sAjaxSource": 'sql/mypbhs_accounts.php',      
        "aaSorting": [[1, "asc" ]],
        "bJQueryUI": true,
        "sPaginationType": "full_numbers",
        //"bStateSave": true, //Use a cookie to save current display of items
        "aoColumns": [
            {"asSorting": [  ], "sClass":"center"},
            null,
            null,
            null,
            null,
            null,
            null,
            { "bSearchable": true, "bVisible": false },       
            { "bSearchable": true, "bVisible": false }       
        ],
        "bScrollCollapse": true,
        "sScrollX": "100%",
         "fnInitComplete": function() {
                oTable.fnAdjustColumnSizing();
         }
    });
/*** CLEAR CURRENT ACCOUNT INFO ***/
$(document).on('click','.mypbhs_content .dataTables_filter',function(){ //THIS IS CALLED WHEN USER CLICKS INTO THE SEARCH BAR
    $('.mypbhs_content .dataTables_filter :input').val(''); //CLEAR CURRENT VALUE IN THE SEARCH BAR
    oTable.fnFilter('');
    //oTable.fnDraw();
    //oTable.fnReloadAjax();
    $('.mypbhs_truform_info').empty(); //REMOVE SUB-INFORMATION SO IT DOESNT GET ASSOCIATED WITH WRONG ACCOUNT
    $('.control_bar').children('ul.mypbhs_account_controls').empty();
});
29
задан JimmyJammed 7 December 2011 в 21:56
поделиться