2015-11-02 27 views
5

私のウェブサイトでは、データテーブルにデータを表示しています。今問題があります。デフォルトのページ付けよりも10レコードが表示されていない場合は、表示されませんが、10レコード以上になると、データテーブルのページ番号が表示されます。データテーブルで10個以上のレコードが表示されている場合はページ番号が表示されます。ページ番号は表示されません

これは私がサーバー側の処理を終了したら、このDataTableのコードはデータテーブル

​​

を初期化する方法である: -

var save_method; 
var table; 
    $(document).ready(function() { 
     table = $('#table').DataTable({ 
     oLanguage: { 
     sProcessing: "<img src='<?php echo base_url();?>assets/img/loader.gif'>" 
     }, 
     "processing": true, 
     "serverSide": true,  
     // Load data for the table's content from an Ajax source 
     "ajax": { 
      "url": "<?php echo base_url();?>Technology/technology_list", 
      "type": "POST" 
     }, 

     "columnDefs": [ 
     { 
      "targets": [ -1 ], 
      "orderable": false, 
     }, 
     ], 
     }); 
    }); 
+0

どのようにしてdataTableを初期化しますか? Nyマークアップ、AJAX、JSON ...?いくつかのコードを表示してください.... – davidkonrad

+0

私はまた、datatableでサーバー側の処理を完了しました。そのために、私はデータテーブルのいくつかのコードを貼り付けます。私が答えの下でそれを適用すればそれはそれで働いていない –

+0

それはまさに私が尋ねた理由です:)異なる状況に異なるアプローチがあります。だから、 'Technology/technology_list'はJSONを返しますか?もし私がもっと知っていれば、喜んで例を作るでしょう: 'xhr'イベントを聞き、records <10なら'#table_filter'と '#table_length'を無効にして、例を作りたいと思っていますがAJAXのレスポンスの仕方を知る必要があります。 – davidkonrad

答えて

8

使用bPaginate(旧ハンガリアン記法スタイル)またはpaginateに改ページをオンにしますまたはオフにします。式を使用してオプションを決定することができます。

$('#tbl_member').dataTable({ 
    "bPaginate" : $('#tbl_member tbody tr').length>10, 
    "iDisplayLength": 10, 
    "bAutoWidth": false, 
    "aoColumnDefs": [ 
     {"bSortable": true, "aTargets": [0,2]} 
    ] 
}); 

これは、1.9.xと1.10.xの両方のバージョンのdataTablesで機能します。 10件の未満のレコードを有するものとの2つのテーブルを示すデモ、他の多くの - AJAX更新後>http://jsfiddle.net/t2xcfLap/3/


隠すページ付けを制御します。 JSONのREPONSEと仮定すると、フォーム

{ 
    "draw": 1, 
    "recordsTotal": 3, 
    "recordsFiltered": 3, 
    "data": [ 
    [...], 
    ] 
} 

その後、

table.on('xhr', function(e, settings, json, xhr) { 
    if (json.recordsTotal<10) { 
     $("#example_paginate").hide(); 
     $("#example_length").hide(); 
    } else { 
     $("#example_paginate").show(); 
     $("#example_length").show(); 
    }   
}) 

デモである - >http://jsfiddle.net/yyo5231z/

注入されたコントロールは、フォーム<tableId>_length<tableId>_paginateで指定されています。したがって、テーブルにidtableがある場合は、上記は$("#table_paginate").hide();である必要があります。

静的テーブルを使用した最初の回答と比較して異なるアプローチの理由は、テーブルを再初期化せずにその場でページネーションを変更できないためです。

+0

あなたの答えはあまりにもありがとう.....それは私の問題を解決する –

関連する問題