2010-09-17 12 views

Antwort

7

Sie können height und width auf 100% setzen, und dann die Bildlaufleisten ’ t erscheinen. Sie erscheinen nur, wenn das Raster größer als der zugewiesene Platz ist. Um den zusätzlichen Platz für die Stäbe zu entfernen, setzte scrollOffset auf 0

Hier ist eine Beispiel Gitterdefinition (korrigierte Version unten):

$("#myGrid").jqGrid({ 
     url: 'datasourceurl', 
     datatype: "json", 
     colNames: eval(json.colNames), 
     colModel: eval(json.colModel), 
     rowNum: -1, 
     width: 100%, 
     height: 100%, 
     scrollOffset: 0, 
     rowList: [10, 20, 30], 
     pager: jQuery('#myPager'), 
     ... 
    }, 

I haven ’ t getestet, aber ich verwende height: 100% für die gleichen Zweck ... so lassen Sie mich wissen, wenn Sie etwas fehlen sehen.

EDIT: Eine bessere Definition und Verbesserung meiner json Nutzung - danke Oleg :)

$("#myGrid").jqGrid({ 
     url: 'datasourceurl', 
     datatype: "json", 
     colNames: JSON.parse(json.colNames), 
     colModel: JSON.parse(json.colModel), 
     width: '100%', 
     height: '100%', 
     rowList: [10, 20, 30], 
     pager: jQuery('#myPager'), 
     ... 
    }, 
+4

Im Allgemeinen ist der Vorschlag, 100% Breite und Höhe zu verwenden, absolut korrekt. Die Werte müssen angegeben werden ('100%' oder '100%'). 'eval' ist böse. Wenn Sie es irgendwo brauchen, sollten Sie 'JSON.parse' verwenden. Es ist viel schneller auf allen aktuellen Browsern (siehe http://www.json.org/js.html) und sicher von Grund auf. Die Verwendung von 'rowNum: -1' ist ebenfalls gefährlich. Es hängt von dem Server ab, den Sie verwenden. Viel sparen Sie entweder einen Wert aus den Werten 'rowList' oder eine große Ganzzahl wie 10000. Die Verwendung von 'scrollOffset: 0' scheint auch nicht nötig zu sein. Sorry für so viel Kritiker, aber ich muss dies schreiben. – Oleg

+0

Danke für die Rückmeldung! –

+0

Vielen Dank für das Posten dieser Korrektur Oleg, es hat mir nur geholfen, das gleiche Problem zu korrigieren. –

2

Es scheint, dies mit scrollOffset:0 getan werden kann. Sah diesen Tipp here

+1

Sorry Marcus, aber ich verstehe nicht, wie die Einstellung von 'scrollOffset: 0' hilft, wenn Sie keine Bildlaufleisten haben ** ohne die Einstellung ** auch. Versuchen Sie, mit einer Testseite http://www.ok-soft-gmbh.com/jqGrid/ClientsideEditing6.htm zu spielen, die kein 'scrollOffset: 0' hat. Es verwendet nur 'width: '100%'' und 'height: '100%''. Können Sie ein Beispiel finden, in dem Sie Rollbalken sehen? – Oleg

+0

Wenn ich keine Scrollbalken habe, gibt es immer noch ein Leerzeichen auf der rechten Seite des Rasters, wo die Scrollleiste gehen würde, wenn zusätzliche Daten vorhanden wären. Die Einstellung von scrollOffset scheint diesen zusätzlichen Speicherplatz zu entfernen. –

+0

@Markus: Sorry Markus, aber ich kann nur wiederholen, dass meiner Meinung nach der Wert von 'scrollOffset' absolut egal ist, zumindest zusammen mit den Einstellungen' width: '100%' und 'height: '100%' was Scrollen Sie im jqGrid ab. Vergleichen Sie einfach http://www.ok-soft-gmbh.com/jqGrid/ClientsideEditing7.htm mit 'scrollOffset: 500' mit http://www.ok-soft-gmbh.com/jqGrid/ClientsideEditing6.htm mit dem Standardwert von 'scrollOffset'. Kannst du irgendwelche Unterschiede sehen? Ich kann nicht. – Oleg