2010-06-22 246 views
32

我用jQuery和jqGrid開發了AJAX接口。jqGrid水平滾動條

如何從我的jqGrid表中刪除水平滾動條?

http://dskarataev.ru/jqgrid.png

如果我設置autowidth: true,然後我得到的列的表= SUM寬的寬度,但我需要表格的寬度= id爲父元素的寬度由函數返回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

我用更新了問題。請回顧。 – dskarataev 2010-06-22 08:25:42

5

有些情況下jqGrid計算網格寬度不正確。您可以嘗試增加cellLayout參數(請參閱http://www.trirand.com/jqgridwiki/doku.php?id=wiki:options)。如果您從jqGrid更改某些CSS,可能需要這樣做。

在其他一些情況下,您可以根據Correctly calling setGridWidth on a jqGrid inside a jQueryUI Dialog中描述的函數fixGridWidthfixGridSize更正寬度。別忘了,你應該在loadComplete之內使用它。

+0

謝謝,我會檢查。 – dskarataev 2010-06-22 08:29:03

72

我調整了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來隱藏水平滾動條,現在一切都很好。

+0

非常適合我,謝謝! – Matthieu 2011-07-28 12:38:44

+0

太棒了,thanx! – 2012-02-14 22:13:59

+0

爲什麼這個問題不是第一個?它有26票,完美的作品!謝謝! – Paschalis 2012-08-01 01:35:27

4

設置柵格上的明確width和使用

autowidth: false, 
shrinkToFit: true 
+0

此解決方案不適用於任何情況。改變CSS是不可能的。 – Matthieu 2011-07-28 12:37:17

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

它的簡單,在jqGrid的shrinkToFit: false