2010-06-22 10 views
32

Я разработал интерфейс AJAX с jQuery и jqGrid.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}] 
}); 

ответ

1

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

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

Resize jqGrid when browser is resized?

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, давайте проанализируем.

+0

I обновил вопрос. Просмотрите, пожалуйста. – dskarataev

5

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

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

+0

спасибо, я проверю. – dskarataev

72

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; 
} 

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

+0

Отлично работает для меня, спасибо! – Matthieu

+0

Отлично, спасибо! –

+0

Почему этот вопрос не первый? он имеет 26 голосов и отлично работает! Спасибо! – Paschalis

4

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

autowidth: false, 
shrinkToFit: true 
+0

Это решение не работает в любой ситуации. Изменение css делает трюк. – Matthieu

0

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

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

Я положил эти строки под функцию «loadComplete».

1

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

Вы должны установить высоту стола только в цифрах, без «рх» в конце

0

Применить AppearanceSettingsShrinkToFit="False" и AutoWidth="true" к вашему jqGrid.

1

Здесь мы идем 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; } 
Смежные вопросы