2016-10-01 3 views
1

Я застрял в jquery Таблица данных. если мы используем таблицу данных jquery, то она предоставляет опцию поиска по умолчанию. Но проблема в том, что если я ищу конкретную запись и если контент не соответствует или я нашел одну запись. то мне нужно удалить значок сортировки. он будет работать, но по мере того, как я нажимаю обратно пространство и удаляю содержимое поиска, как обычно, он отображает все записи. Но теперь сортируемый значок отключен, он должен быть включен снова, то для чего это решение.Jquery Таблица данных Поиск Опция не включает сортировку icon

Это вызов функции: -

$('#datatable-information').on('draw.dt', function() { 

    disableSortingSearchOption(oTable, 'datatable-information_filter input'); 

Это функция Defination: -

function disableSortingSearchOption(oTables, tableClass) { 

    if (oTables != null) { 
     var rowCount = oTables.fnSettings().fnRecordsDisplay(); 
     { 

      if (rowCount == 0 || rowCount == 1) { 


       var oSettings = oTables.fnSettings(); 

       //Remove sort icon 
       $('.DataTables_sort_icon').remove(); 
       //Remove hand cursor 
       $('.datatable th').css('cursor', 'default'); 
       //Iterate through each column and disable sorting 
       $('.' + tableClass + ' th').each(function (index) { 
        if ((oSettings.aoColumns[index]) != undefined) { 
         oSettings.aoColumns[index].bSortable = false; 
        } 
       }); 
      } 
     } 
    } 
} 

ответ

0

Вот простой способ удалить сортировочную стрелку на заголовках таблицы и изменить указатель по умолчанию когда выделенная таблица имеет 1 строку или меньше.

На более чем одной строке сортировка таблицы и указатель возвращаются к «нормальному».

Мое решение отличается от кода, который вы указали.

function disableSortingSearchOption(oTables) { 

    if (oTables != null) { 
    var colCount = 0; 
    $(oTables).find('th').each(function(){ 
     colCount++; 
    }); 
    //console.log(colCount+" colunms"); 

    var rowCount = 0; 
    $(oTables).find('td').each(function(){ 
     rowCount++; 
    }); 
    rowCount = rowCount/colCount; 
    //console.log(rowCount+" rows"); 

    if (rowCount <= 1) { 
     //Remove hand cursor 
     $(oTables).find('th').css('cursor', 'default'); 

     //Remove sort arrows 
     $(oTables).find('th').removeClass('sorting'); 

    }else{ 
     //Add hand cursor 
     $(oTables).find('th').css('cursor', 'pointer'); 

     //Add sort arrows 
     $(oTables).find('th').addClass('sorting'); 
    } 
    } 
} 

Нам необходимо знать количество строк ...
Для достижения этой цели мы сначала подсчитать количество столбцов и td количество всей таблицы в.

Количество строк td сумма, деленная на количество столбцов.
На основании этого номера мы можем добавить или удалить класс sorting на всех th и установить курсор.

Обратите внимание, что, когда нет результата, есть еще одна строка для отображения «Соответствующие записи не найдены». Но так как в этом случае есть только 1 td ... деленный на коллон, мы должны думать о «одной или меньшей строке».
;)

Посмотрите на это CodePen.

+0

Спасибо, что это отлично работает – Sagar

+0

;) согласились бы вы тогда? –

+0

Да Я принимаю это – Sagar

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