2013-04-18 5 views
12

Ich bin nicht sicher, ob ich die Frage bin zu wiederholen, wenn ja an die richtige Stelle führen :)Scroll Problem in JQuery Datatable

I Datentabelle bin mit und versuchen, Horizontales Scrollen zu implementieren und fand diesen Link

http://www.datatables.net/examples/basic_init/scroll_x.html

Ich habe diese Eigenschaften in meinem Datentabelle Code verwendet und habe Probleme in der Benutzeroberfläche.

Meine Daten haben die horizontale Bildlaufleiste, aber meine Spalten nicht erweitert und funktioniert nicht wie erwartet. Ich habe zusätzliche leere Spalte unterhalb meiner normalen Spalte.

Grundsätzlich ist meine Benutzeroberfläche durcheinander. Ich sah eine alte Diskussion darüber!

DataTables fixed headers misaligned with columns in wide tables

fixiert sind diese Probleme nun alle Lösungen?

================================

Hinzufügen von Beispielcode

$("#results").dataTable({ 
    "aaData": [ 
     //My data 
    ], 
    "aoColumns": [ 
     //My Columns 
    ], 
    "bPaginate": true, 
    "bSort": true, 
    "bFilter": false, 
    "bJQueryUI": false, 
    "bProcessing": true, 
    "sScrollX": "100%", 
    "sScrollXInner": "110%", 
    "bScrollCollapse": true 
}); 
+1

Post Code . –

+0

wurde Beispielcode hinzugefügt. setze keine explizite Breite für Spalten – user2067567

+0

Es ist nichts falsch in * was du gepostet hast *. Also, etwas anderes ist die Ursache. Haben Sie auch überprüft, ob Sie wirklich "" sScrollXInner "brauchen:" 110% "'? Überprüfen Sie den Hinweis zu dieser Eigenschaft: * Beachten Sie auch, dass sScrollXInner hier verwendet wird, um die Tabelle zu zwingen, breiter als unbedingt erforderlich zu sein. Sie können diesen Parameter abhängig von Ihrer Anwendung einbeziehen oder nicht. * –

Antwort

22

Ich hatte ein ähnliches Problem, löste es aber auf andere Weise.

Ich veränderte die sDom Parameter die Tabelle in einem extra div zu wickeln:

sDom: 'r<"H"lf><"datatable-scroll"t><"F"ip>', 

ich dann angewendet, um die folgenden Arten an die .datatable-scroll Klasse:

/** 
* Makes the table have horizontal scroll bar if its too wide for its container 
*/ 
.datatable-scroll { 
    overflow-x: auto; 
    overflow-y: visible; 
} 

http://datatables.net/usage/options#sDom

+1

Ihre Lösung ist großartig. Ich habe viele verschiedene Lösungen getestet, um mit dem Problem der Scroll-Kopf- und Körperausrichtung umzugehen, aber in allen Browsern funktionierte nichts. Diese Lösung ist perfekt, Crossbrowser und überlädt Javascript nicht mit mehr Hack-Calls. (Ich bearbeite Ihre Antwort, um ein bisschen mehr Informationen mit einem anderen Beispiel hinzuzufügen). Ich danke dir sehr! :) – xtrm

+0

Beste Antwort bisher nach einer ermüdenden Recherche im Internet für Scroll gefunden. Aber du magst es hinzufügen ** float: left; Breite: Ihr-Wertpx; position: relative; ** in .datatable-scroll-Klasse, um mit IE7- und IE8-Browsern kompatibel zu sein. Weil ich diese Werte hinzufügen musste. Wenn Sie nur die horizontale Bildlaufleiste benötigen, müssten Sie ** overflow-x: scroll; overflow-y: versteckt; ** sonst wird es Nebenwirkungen in IE geben. Wie auch immer, vielen Dank Kumpel !! –