2013-02-04 14 views
6

Vorrei modificare la dimensione dell'area scorrevole di un datatable.jquery - modifica databile sScrollY

$('#example').dataTable({"sScrollY": 100}); 
//some stuff.. 
$('#example').dataTable({"sScrollY":101}); //wrong: cannot reinitialize 
+0

Ho trovato una soluzione/soluzione alternativa. http://stackoverflow.com/questions/7678345/datatables-change-height-of-table-not-working –

+0

Attendi che stai tentando di ridimensionare il datatable dopo il ridimensionamento di una pagina? Non è quello che hai chiesto nel tuo codice sopra puoi confermare che è quello che stai cercando di fare. – Neo

+0

Sto provando a ridimensionare l'area scorrevole di un datatable, non lo stesso datatable (btw: ho trovato la risposta). –

risposta

6
$('.dataTables_scrollBody').css('height', 400); 
+0

Cambia l'altezza della tabella non dell'area scorrevole – Neo

+0

Questo metodo cambia dimensione dell'area scorrevole di datatable. Ovviamente ha anche un effetto collaterale - cambia la dimensione dell'intero tavolo stesso - ma il valore dato sarà l'altezza dell'area scorrevole e l'altezza dell'intera tabella. –

+1

dovresti usare 400px invece di solo 400 – Prozi

4

Per cambiare la Y Scorrere utilizzare il codice qui sotto,

var objDataTable = $('#example').dataTable({"sScrollY" : 100}); 
objDataTable.fnSettings().oScroll.sY = 101; 
objDataTable.fnDraw(); 
+0

non ha l'effetto –

+0

Io lo uso su diversi siti, per favore pubblica il tuo intero codice – Neo

+0

http://paste.ubuntu.com/1616089/ –

0

ho dovuto combinare entrambi per risolvere il mio problema. Nel mio caso voglio fare una paginazione senza fine, il problema è che dopo il ridimensionamento della finestra, l'altezza di dataTables_scrollBody rimane fissa, quindi devo regolare lo oScroll per mostrare i dati della tabella con la barra di scorrimento. Impostando l'altezza dataTables_scrollBody funzionerà quando cambiano le dimensioni della finestra, ma dopo il ridisegno della tabella verrà eseguito il rollback utilizzando il vecchio valore sScrollY e il codice di Neo l'ha risolto. :)

objDataTable.fnSettings().oScroll.sY = 101; 
objDataTable.fnDraw(); 
$('.dataTables_scrollBody').css('height', 400); 
+0

dovresti usare 400px invece di solo 400 – Prozi

2

Se su base annua avere diversi DataTable è possibile accedere ogni dal wrapper:

$('#example').dataTable({'sScrollY': 100}); 
//some stuff.. 
objDataTable.fnSettings().oScroll.sY = '225px'; 
$('#example_wrapper').children('.dataTables_scroll').children('.dataTables_scrollBody').css('height', '225px'); 
1

Per jquery.dataTables 1.10.x:

$('div.dataTables_scrollBody').height(400); 

Questo è il modo consigliato secondo alla documentazione di Datatables. Secondo la stessa documentazione, l'uso dell'oggetto impostazioni è scoraggiato in quanto è interno.

+1

Nel mio caso, questo non ha funzionato. la soluzione di nagy.zsolt.hun. – adityawho