2015-11-02 18 views
5

Na mojej stronie używam tabel danych do wyświetlania danych. Teraz Problem jest Jeśli istnieje 10 rekordów niż domyślna paginacja nie jest wyświetlana, ale gdy jest więcej niż 10 rekordów, powinna zostać wyświetlona paginacja tabeli danych.W datatable więcej niż 10 rekordów pokazuje paginację inaczej nie wyświetlać stronicowania przy użyciu datatables

ten sposób zainicjować DataTable

$(document).ready(function(){ 
     $('#tbl_member').dataTable({ 
      "iDisplayLength": 10, 
      "bAutoWidth": false, 
      "aoColumnDefs": [ 
       {"bSortable": true, "aTargets": [0,2]} 
      ] 
     }); 
}); 

ten DataTable kod jest kiedy zrobiłem serwera przetwarzanie boczny: -

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

W jaki sposób wprowadzasz dane do tabeli danych? Ny markup, przez AJAX, przez JSON ...? Proszę pokazać kod ... – davidkonrad

+0

Wykonałem również przetwarzanie po stronie serwera w datatable. W tym celu wklejam kod datatable. Jeśli zgłoszę poniżej odpowiedź To nie działa w tym –

+0

Właśnie dlatego zapytałem :) Istnieją różne podejścia do różnych sytuacji. Tak więc, 'Technology/technology_list' zwróci JSON? Gdybym wiedział więcej, z przyjemnością utworzyłbym przykład: posłuchaj zdarzenia 'xhr', wyłącz' # table_filter' i '# table_length', jeśli rekordy <10, z przyjemnością wytworzą przykład, ale muszą wiedzieć, w jaki sposób powstaje odpowiedź AJAX . – davidkonrad

Odpowiedz

8

Zastosowanie bPaginate (stary węgierski styl notacji) lub paginate aby włączyć stronicowanie na lub wyłączone. Można użyć wyrażeń, aby określić opcje:

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

Działa to w wersjach DataTables z wersją 1.9.xi 1.10.x. Demo pokazuje dwie tabele z jednej mającej mniej niż 10 rekordów, inne dużo więcej ->http://jsfiddle.net/t2xcfLap/3/


kontrole Ukryj podział na strony po aktualizacji AJAX. Zakładając réponse JSON jest na formularzu

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

następnie

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(); 
    }   
}) 

demo ->http://jsfiddle.net/yyo5231z/

W wstrzykiwane Kontrola jest nazwany na formularzu <tableId>_length, <tableId>_paginate. Więc jeśli Twój stół ma idtable, powyższe powinno być $("#table_paginate").hide(); i tak dalej.

Powodem odmiennego podejścia w porównaniu do pierwszej odpowiedzi ze statyczną tabelą jest to, że nie można zmienić strony w locie bez ponownej inicjalizacji tabeli.

+0

Masz twoją odpowiedź dziękuję bardzo ..... To rozwiązuję mój problem –

Powiązane problemy