Подтвердить что ты не робот

Горизонтальная полоса прокрутки jqGrid

Я разработал интерфейс AJAX с jQuery и jqGrid.

Как я могу удалить горизонтальную полосу прокрутки из таблицы jqGrid?

http://dskarataev.ru/jqgrid.png

Если я устанавливаю autowidth: true, тогда я получаю ширину таблицы = суммарную ширину столбцов, но мне нужна ширина таблицы = ширина родительского элемента с идентификатором, возвращаемым функцией getSelectedTabHref()

поэтому я делаю функцию:

$(window).bind('resize', function() {
  $('#tasks').setGridWidth($(getSelectedTabHref()).width());
  $('#tasks').setGridHeight($(window).height()-190);
}).trigger('resize');

и вот как я создаю таблицу jqGrid:

$('#tasks').jqGrid({
  datatype: 'local',
  colNames:[labels['tasksNum'],labels['tasksAdded']+"/"+labels['tasksAccepted'],labels['tasksOperator'],labels['tasksClient'],labels['tasksManager'],labels['tasksDesc']],
  colModel :[
    {name:'taskId', index:'taskId', width:1, align:'right'},
    {name:'taskAdded', index:'taskAdded', width:3},
    {name:'taskOperator', index:'taskOperator', width:4},
    {name:'taskClient', index:'taskClient', width:7},
    {name:'taskManager', index:'taskManager', width:4},
    {name:'taskDesc', index:'taskDesc', width:8}]
});

4b9b3361

Ответ 1

i отрегулировал ui.grid.css, потому что мне вообще не нужна горизонтальная полоса прокрутки. Я сделал это:

.ui-jqgrid .ui-jqgrid-bdiv {
  position: relative; 
  margin: 0em; 
  padding:0; 
  /*overflow: auto;*/ 
  overflow-x:hidden; 
  overflow-y:auto; 
  text-align:left;
}

прокомментировал, как это было, я просто использовал overflow-x, чтобы скрыть горизонтальную полосу прокрутки, и теперь все в порядке со мной.

Ответ 2

Есть некоторые ситуации, когда jqGrid неправильно вычисляет ширину сетки. Вы можете попытаться увеличить параметр cellLayout (см. http://www.trirand.com/jqgridwiki/doku.php?id=wiki:options). Это может потребоваться, если вы измените CSS из jqGrid.

В некоторых других ситуациях вы можете исправить ширину относительно функции fixGridWidth или fixGridSize, которую я описал в Правильно вызываю setGridWidth в jqGrid внутри диалога jQueryUI. Не забывайте, что вы должны использовать его внутри loadComplete.

Ответ 3

Задайте явный width в сетке и используйте

autowidth: false,
shrinkToFit: true

Ответ 4

setGridWidth определенно изменит размер вашей сетки на заданную новую ширину, но убедитесь, что вы используете ее с autowidth = true. setGridWidth может иметь проблемы с IE 7 или около того.

Некоторые рабочие решения, обсуждаемые здесь (в случае, если вам еще нужно найти решение),

Изменить размер jqGrid при изменении размера браузера?

http://www.trirand.com/blog/?page_id=393/discussion/browser-resize-how-to-resize-jqgrid/

---- старый ----

Есть несколько вариантов, которые вы можете попробовать,

От http://www.trirand.com/jqgridwiki/doku.php?id=wiki:options

"autowidth" : true    

или

"shrinkToFit": false

В противном случае отправьте свой код jqgrid, давайте проанализируем.

Ответ 5

немного поздно, но может быть полезно для кого-то

Вы должны установить высоту таблицы только в числах, без 'px' в конце

Ответ 6

Здесь мы идем width : '1083', shrinkToFit:false,

Когда мы установили выше, нам нужно убедиться, что наш ui.jqgird.css установлен ниже

.ui-jqgrid .ui-jqgrid-bdiv { height: auto; margin: 0em; max-height: 250px; overflow-x: auto; overflow-y: auto; padding: 0px; position: relative; text-align: left; }

Ответ 7

Добавьте приведенный ниже скрипт в ваш style.css, чтобы решить вашу проблему.

.ui-jqgrid .ui-jqgrid-bdiv {
    overflow-x:hidden !important; 
    overflow-y:auto !important;
}

Ответ 8

Я использовал метод jqgrid API setGridHeight. он отлично работает для меня и в IE 8.

var gr = jq('#grid');
gr.setGridHeight(350,true);

i помещает эти строки под вызов функции loadComplete.

Ответ 9

Примените AppearanceSettings ShrinkToFit="False" и AutoWidth="true" к jqGrid.

Ответ 10

Простое использование в jqgrid shrinkToFit: false

Ответ 11

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

loadComplete: function (data) {
                //set our "ALL" select option to the actual number of found records
                $(".ui-pg-selbox option[value='ALL']").val(data.records);
                if ($(".ui-jqgrid").height() > $('#grid').getGridParam('maxHeight')) {
                    //resize our grid for the vertical scroll bar to eliminate the hortizontal scroll bar
                    $(".ui-jqgrid").css("width", $('#grid').getGridParam('width') + 20);
                    $(".ui-jqgrid-bdiv").css("width", $('#grid').getGridParam('width') + 17);
                    $(".ui-jqgrid-hdiv").css("width", $('#grid').getGridParam('width') + 20);
                    $(".ui-jqgrid-view").css("width", $('#grid').getGridParam('width') + 20);
                    $("#pager").css("width", $('#grid').getGridParam('width') + 20);
                    $(".ui-jqgrid-hbox").css("padding-right", "16px");
                } else { //set everything to defaults
                    $(".ui-jqgrid").css("width", $('#grid').getGridParam('width'));
                    $(".ui-jqgrid-bdiv").css("width", $('#grid').getGridParam('width'));
                    $(".ui-jqgrid-hdiv").css("width", $('#grid').getGridParam('width'));
                    $(".ui-jqgrid-view").css("width", $('#grid').getGridParam('width'));
                    $("#pager").css("width", $('#grid').getGridParam('width'));
                    $(".ui-jqgrid-hbox").css("padding-right", "0px");
                }
}

Ответ 12

Я настраиваю этот тип CSS в моем jqgrid

.ui-jqgrid .ui-jqgrid-bdiv {
 position: relative;
 margin: 0;
 padding: 0;
 overflow: auto;
 text-align: left;
}

Ответ 13

Это работает для меня

 <style type="text/css">
    .ui-jqgrid-bdiv {
        overflow-x: hidden !important;
    }
 </style>