2016-08-23 2 views
0

Ich bin neu in JQgrid und habe versucht, die erste Spalte im Raster einzufrieren, damit horizontales Scrollen diese Spalte nicht beeinflusst.JQgrid FreezeColumn nicht einfrieren Headern?

Ich habe frozen: true in der colModel, sowie Aufruf Jquery("#grid").jqGrid('setFrozenColumns');.

Dies friert die Spalte DATA korrekt ein, aber wenn ich nach rechts scrolle, blättern die Spaltenköpfe mit mir. Wie kann ich die Header auch einfrieren?

Vielen Dank!

Beispielcode:

jQuery("#taskGrid").jqGrid({ 
datatype: "jsonstring", 
colNames:['task ID','TASK Name', 'ROLE Info'], 
colModel:[ 
    {name:'taskId',index:'taskId', width:100, frozen: true}, 
    {name:'taskName',index:'taskName', width:200}, 
    {name: 'roleInfo.1', index: 'roleInfo.1', width:100, formatter: 'checkbox' } 

], 
jsonReader: {repeatitems: false}, 
datastr: JSON.parse(document.form.taskData.value), 
rowNum:50, 
pager: '#pager2', 
sortname: 'taskId', 
viewrecords: true, 
sortorder: "desc", 
caption:"JSON Example", 
height: "750", 
width: "350", 
shrinkToFit: false 
});jQuery("#taskGrid").jqGrid('setFrozenColumns'); 
+0

Welche Version von jqGrid verwenden Sie? Ich denke, es hat in einigen älteren Versionen nicht richtig funktioniert. http://stackoverflow.com/a/8486592/1491895 sagt, es wurde in 4.3 implementiert. Es funktioniert in der Demo unter http://stackoverflow.com/a/8486592/1491895 – Barmar

+0

@Barmar Ich benutze Version 5.1.0. Abgesehen von der Tatsache, dass ich den Datentyp jsonstring und ein datastr verwende, ist mein Grid dieser Demo sehr ähnlich. Ich habe nichts online gesehen, dass IE11 inkompatibel ist, aber das ist der Browser, mit dem ich arbeite. – newToJQGrid

+0

@newToJQGrid: Versuchen Sie, [free jqGrid] (https://github.com/free-jqgrid/jqGrid) 4.13.4 anstelle von Guriddo jqGrid JS 5.1.0 zu verwenden, das Sie derzeit verwenden. Zuallererst enthält es viele Fixes in eingefrorenen Spalten, enthält viele Verbesserungen und es ist kostenlos im Gegensatz zu Guriddo jqGrid JS (siehe die Preise [hier] (http://guriddo.net/?page_id=103334)). Um kostenlos jqGrid zu testen, können Sie einfach alle jqGrid direkt von CDN laden (siehe [der Wiki-Artikel] (https://github.com/free-jqgrid/jqGrid/wiki/Access-free-jqGrid-from-different-CDNs)). – Oleg

Antwort

0

Try free jqGrid 4.13.4 statt Guriddo jqGrid JS 5.1.0, die Sie derzeit verwenden, zu verwenden. Zuallererst enthält es viele Korrekturen in eingefrorenen Spalten, enthält viele Verbesserungen und es ist kostenlos im Gegensatz zu Guriddo jqGrid JS (siehe die Preise here). Um kostenlos jqGrid zu testen, können Sie einfach alle jqGrid direkt von CDN laden (siehe the wiki article).

Ich würde Ihnen empfehlen, zusätzlich datatype: "local" und data: jQuery.parseJSON(document.form.taskData.value) anstelle von datatype: "jsonstring" und datastr zu verwenden. Der Datentyp "jsonstring" ist nur gut, wenn Sie benötigen, um lokale Sortierung der Eingabedaten während des ersten Ladens zu verhindern. Wenn Sie datatype: "local" verwenden würden, werden die Eingabedaten lokal sortiert basierend auf sortname: 'taskId' und sortorder: "desc" bevor es angezeigt wird.

+0

Ich bin ein wenig verwirrt aufgrund einiger Ihrer Kommentare in verschiedenen Threads. Ich sehe, dass Sie 'datentyp: "jsonstring" 'für Benutzer vorschlagen, die' jsonmap' im 'colModel' verwenden. Ich habe versucht, verschachtelte JSON-Daten in meinem Grid zu binden. Soll ich eine neue Frage stellen? – newToJQGrid

+0

@newToJQGrid: Sorry, was meinst du? Welche Kommentare, welche Themen? – Oleg

+0

http://stackoverflow.com/questions/30255044/jqgrid-not-able-to-bind-json-data-with-dot – newToJQGrid