2016-10-01 9 views
1

jqueryデータテーブルにスタックされています。 jqueryデータテーブルを使用すると、デフォルトで検索オプションが提供されます。しかし問題は、特定のレコードを検索し、コンテンツが一致しないか、単一のレコードが見つかった場合です。私は並べ替えのアイコンを削除する必要があります。それは動作しますが、スペースを押して検索コンテンツを削除すると、通常どおりすべてのレコードが表示されます。しかし、現在、ソート可能なアイコンは無効になっており、もう一度有効にする必要があります。Jqueryのデータテーブル検索オプションでソートアイコンが有効になっていません

これは、関数呼び出しである: -

$('#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量を列量で割ったものです。
この番号に基づいて、thsortingクラスを追加または削除してカーソルを設定できます。

結果がない場合、「一致するレコードが見つかりません」と表示される行は1つあります。。しかし、この場合にはtdが1つしかないので、列数で割って、「1つまたはそれ以下の線」について考える必要があります。

このCodePenをご覧ください。

+0

ありがとうございますそれは完璧に – Sagar

+0

;)あなたは答えを受け入れるでしょうか? –

+0

はい明らかに私はそれを受け入れる – Sagar

関連する問題