2010-06-22 170 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