jqGrid-есть ли способ всегда отображать вертикальную полосу прокрутки?
в моем приложении есть несколько jqGrids, которые могут содержать или не содержать достаточно строк для вертикальной полосы прокрутки. Но строки могут динамически добавляться к этим сеткам после их создания, так что в конечном итоге для сетки может потребоваться полоса прокрутки.
проблема в том, что если в сетке недостаточно строк для полосы прокрутки, в правой части сетки есть пустое пространство. Я хотел бы исправить это как - то-либо всегда отображать вертикальную полосу прокрутки, либо как-то динамически добавляйте его при необходимости.
Я попытался добавить следующий CSS в сетку .ui-jqgrid-bdiv div:
overflow-y: scroll;
используя следующий jQuery (код уродливый, я знаю):
$("#mygrid").closest(".ui-jqgrid-bdiv").attr("style",
$("#mygrid").closest(".ui-jqgrid-bdiv").attr("style") + " overflow-y: scroll; ");
это отлично работает в Firefox и Chrome, но в IE сетка никогда не отображает полосу прокрутки (независимо от того, сколько строк я добавляю, они добавляются в нижнюю часть сетки, и вертикальная полоса прокрутки никогда не появляется).
любая помощь приветствуется!
4 ответов
overflow-y
является CSS3, и он еще не полностью поддерживается IE (вздох...)
Итак, я думаю, что единственные 2 CSS вещи, которые вы можете сделать с этим, без какой-либо другой разметки, это использовать либо overflow: auto
(что позволит браузеру решить) или overflow: scroll
, что заставит как вертикальные, так и горизонтальные полосы прокрутки.
обходной путь может заключаться в том, чтобы обернуть всю сетку в больший div с минимальной высотой, поэтому вы устанавливаете это равным окну браузеров + 1px. Что будет вертикальная полоса прокрутки.
установка минимальной высоты может быть сложно сделать во всех браузерах, но я нашел, что это отлично работает в большинстве из них.
.the-wrapper{
height: auto !important; /* for real browsers*/
height: 601px; /* IE6 will use this a min-height. Use any height you need - you can even set this using JavaScript depending on the browser window height */
min-height: 601px; /* for real browsers - same value as height */
}
конечно, это добавит некоторое пространство под сетками. Добро пожаловать на борт!
вы установили свойство height в сетке? IE может стать сварливым с полосами прокрутки, если высота не установлена.
вы пробовали jqGrid 3.6 beta, у него много новых функций, таких как: истинные строки прокрутки Я думаю, что это решение для вас.
демонстрация новых функций: http://www.trirand.com/jqgrid/jqgrid36/jqgrid.html
Alsow есть новый способ добавлено: gridResize
который может изменять размер сетки.
http://github.com/tonytomov/jqGrid/commit/a008ebf7b8ad684b21e51f21eed4301b82bc66f2