jqGrid - 不显示滚动条

7
有没有办法不显示滚动条?我们也不想显示滚动条所占的额外空间,即使我们的数据在网格上不适合。
2个回答

9
您可以将heightwidth设置为100%,然后滚动条将不会出现。仅当网格大于分配的空间时,它们才会出现。要删除额外的条的空间,请将scrollOffset设置为0。
以下是一个网格定义示例(下面是更正后的版本):
$("#myGrid").jqGrid({
        url: 'datasourceurl',
        datatype: "json",
        colNames: eval(json.colNames),
        colModel: eval(json.colModel),
        rowNum: -1,
        width: 100%,
        height: 100%,
        scrollOffset: 0,
        rowList: [10, 20, 30],
        pager: jQuery('#myPager'),
        ...
    }, 

我没有测试过这个,但我使用height: 100%来达到同样的目的...所以如果你发现有什么缺失,请告诉我。

编辑:更好的定义和对我的json使用的改进 - 感谢Oleg :)

$("#myGrid").jqGrid({
        url: 'datasourceurl',
        datatype: "json",
        colNames: JSON.parse(json.colNames),
        colModel: JSON.parse(json.colModel),
        width: '100%',
        height: '100%',
        rowList: [10, 20, 30],
        pager: jQuery('#myPager'),
        ...
    }, 

4
通常建议使用100%的宽度和高度是完全正确的。值必须加引号('100%'或"100%")。eval很危险。如果你在某处需要它,应该使用JSON.parse。在所有现代浏览器中速度更快(参见http://www.json.org/js.html),而且当然也更安全。使用`rowNum: -1也是危险的。这取决于您使用的服务器。更安全的方法是使用rowList中的一个值或像10000这样的大整数。我认为使用scrollOffset:0`似乎也不必要。很抱歉批评这么多,但我必须这样写。 - Oleg
感谢您发布这个修复程序,Oleg。它帮助我解决了同样的问题。 - Chris Hough

3
看起来可以通过 scrollOffset:0 来实现。这个技巧可以在这里找到:这里

1
抱歉马库斯,我不明白如果没有设置,如何通过scrollOffset:0的设置来帮助你消除滚动条。请尝试使用一个没有scrollOffset:0的测试页面http://www.ok-soft-gmbh.com/jqGrid/ClientsideEditing6.htm进行测试。它只使用了`width:'100%'`和`height:'100%'`。你能找到一个例子,在这个例子中你可以看到滚动条吗? - Oleg
如果我没有滚动条,网格右侧仍然有一个空间,如果有额外的数据,滚动条将放置在那里。设置scrollOffset似乎可以删除此额外空间。 - Marcus Leon
@Markus:抱歉,但我只能重申,在我的观点中,scrollOffset参数的值与width: '100%'height: '100%'设置一起使用时是绝对不重要的,这些设置会关闭jqGrid中的滚动。只需比较具有scrollOffset:500的http://www.ok-soft-gmbh.com/jqGrid/ClientsideEditing7.htm和具有默认值`scrollOffset`的http://www.ok-soft-gmbh.com/jqGrid/ClientsideEditing6.htm。你能看到任何区别吗?我看不到。 - Oleg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接