Поддерживает ли jQuery jqGrid горизонтальную полосу прокрутки и закрепленные столбцы?

У меня есть jqGrid с большим количеством столбцов, и он появляется как это, когда сумма ширины столбцов больше, чем контейнер с фиксированной шириной:

введите описание изображения здесь

Вместо горизонтальной полосы прокрутки, если ширина сетки слишком велика.

Как я могу получить горизонтальную полосу прокрутки для jQgrid, чтобы был фиксированный максимальный размер сетки, и если я добавлю больше столбцов, он просто будет прокручиваться?

Кроме того, если это возможно, можете ли вы заморозить первые несколько столбцов?


person leora    schedule 13.02.2011    source источник


Ответы (3)


Возможно, вы используете forceFit:true параметр jqGrid. Прежде всего вы должны установить forceFit:false или использовать shrinkToFit:false. После этого вы можете использовать width параметр jqGrid или использовать setGridWidth метод установки ширины сетки. У вас будет сетка, в которой заголовок столбца соответствует свойству width столбца, а сетка будет иметь горизонтальную полосу прокрутки.

ОБНОВЛЕНО: попробуйте установить shrinkToFit:false и width:600 (например) и посмотрите результаты.

Установив только shrinkToFit:false, вы увидите, что сетка будет иметь горизонтальную полосу прокрутки. Вы увидите это, даже если сетка достаточно мала для отображения без прокрутки. Это ошибка, которую я опубликовал здесь вместе с соответствующим исправлением ошибки. Исправление включено в код на GitHub, но не в jqGrid 3.8. .2. В следующем выпуске jqGrid будет исправление. Тем не менее, для ваших целей неправильная ширина не важна, потому что вы можете / можете явно установить width сетки.

person Oleg    schedule 13.02.2011
comment
Привет .... Я добавил свойства shrinkToFit: false и width, и jqgrid соответствует странице, но полосы прокрутки не видно. Намекните, пожалуйста? Спасибо - person jstuardo; 30.05.2013
comment
@jstuardo: Какую версию jqGrid вы используете? Какой веб-браузер какой версией вы используете? Не могли бы вы предоставить демонстрацию, которая может быть использована для воспроизведения вашей проблемы? - person Oleg; 02.06.2013

вы можете получить горизонтальную полосу прокрутки со статическими полями или полями с автоматическим размером, обернув сетку и пейджер блоком div и запустив небольшой скрипт,
вы можете увидеть jsfiddle-example или просто так:

<div id="grid_container">
  <table id="list"></table>
  <div id="pager"></div>
</div>

и запустите этот скрипт:

$('#grid_container div:not(.ui-jqgrid-titlebar)').width("100%");    

в моем примере используется сценарий с сайта trirand.com, но я попробовал его на своей последней версии, и он работал нормально.
надеюсь, я помог.

person Yakir Manor    schedule 20.08.2013

Попробуйте использовать гибкий плагин jqGrid . Возможно, это поможет вам решить вашу проблему с шириной jqGrid.

Что касается второго вопроса, для замораживания первых столбцов n я успешно использую этот суперплагин для замораживания первых столбцов. Вы добавляете к своей модели только один атрибут, и он работает.

Удачи!

person kajo    schedule 14.02.2011