2016-08-23 2 views
0

Я новичок в JQgrid и пытаюсь заморозить первый столбец в сетке, поэтому горизонтальная прокрутка не повлияет на эту колонку.JQgrid FreezeColumn не замораживает заголовки?

У меня есть frozen: true в colModel, а также по телефону Jquery("#grid").jqGrid('setFrozenColumns');.

Это правильно замораживает столбец DATA, но при прокрутке вправо заголовки столбцов прокручиваются вместе со мной. Как я могу заморозить заголовки?

спасибо!

Пример кода:

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

Какую версию jqGrid вы используете? Я думаю, что это не сработало правильно в некоторых старых версиях. http://stackoverflow.com/a/8486592/1491895 говорит, что он был реализован в 4.3. Он работает в демо на http://stackoverflow.com/a/8486592/1491895 – Barmar

+0

@Barmar Я использую версию 5.1.0. Кроме того, что я использую тип данных: jsonstring и datastr, моя сетка очень похожа на эту демонстрацию. Не видели ничего о нем, так как IE11 несовместим, но это браузер, с которым я работаю. – newToJQGrid

+0

@newToJQGrid: Попробуйте использовать [free jqGrid] (https://github.com/free-jqgrid/jqGrid) 4.13.4 вместо Guriddo jqGrid JS 5.1.0, который вы используете в настоящее время. Прежде всего, он включает в себя множество исправлений в замороженных столбцах, содержит множество улучшений и их бесплатность в противоположность Guriddo jqGrid JS (см. Цены [здесь] (http://guriddo.net/?page_id=103334)). Чтобы попробовать бесплатную jqGrid, вы можете просто загрузить всю jqGrid непосредственно из CDN (см. Статью [wiki] (https://github.com/free-jqgrid/jqGrid/wiki/Access-free-jqGrid-from-different-CDNs)). – Oleg

ответ

0

Попробуйте использовать free jqGrid 4.13.4 вместо Guriddo jqGrid JS 5.1.0, который вы используете в данный момент. Прежде всего, он включает в себя множество исправлений в замороженных столбцах, содержит множество улучшений и их бесплатность в противоположность Guriddo jqGrid JS (см. Цены here). Чтобы попробовать бесплатный jqGrid, вы можете просто загрузить всю jqGrid непосредственно из CDN (см. the wiki article).

Я бы рекомендовал вам дополнительно использовать datatype: "local" и data: jQuery.parseJSON(document.form.taskData.value) вместо datatype: "jsonstring" и datastr. Тип данных "jsonstring" хорош только в том случае, если вам нужно , чтобы предотвратить локальную сортировку входных данных во время начальной загрузки. Если вы будете использовать datatype: "local", тогда входные данные будут отсортированы локально на основе sortname: 'taskId' и sortorder: "desc", прежде чем они будут отображаться.

+0

Я немного смущен, основываясь на нескольких ваших комментариях в разных тонах. Я вижу, что вы предлагаете 'datatype:" jsonstring "' для пользователей, пытающихся использовать 'jsonmap' в' colModel'. Я пытаюсь связать вложенные данные JSON в моей сетке. Должен ли я задать новый вопрос? – newToJQGrid

+0

@newToJQGrid: Извините, что вы имеете в виду? Какие комментарии, какие темы? – Oleg

+0

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

Смежные вопросы