jquery - 如何隐藏 jqGrid 子网格上的水平滚动条?

标签 jquery jquery-ui jqgrid

所以我在 jqGrid 方面遇到了一个小显示问题。我不能声称它本身就是一个错误,但它让我的用户感到困惑,因此我被要求处理它 - 但它似乎让我变得更好。

我正在使用子网格,其中展开父网格行会导致加载子网格(请参阅下面的代码)。我简化了整个配置,使其更易于阅读,主要是删除除一列之外的所有列并保持 colModel 简单。父网格有一个水平滚动条,可以从右向左滚动以查看屏幕上可能没有的数据。当屏幕足够大以显示所有数据时,父网格上的水平滚动条消失。

当子网格加载时,它会以 100% 的宽度加载,效果很好。父网格展开以允许显示整个子网格,并且父网格的水平滚动条允许您来回滚动以查看所有数据。无论是否显示子网格或显示多少子网格,所有水平滚动都有一个滚动条。

不幸的是,子网格还显示一个水平滚动条 - 但由于网格宽度为 100%,该滚动条不会“执行”任何操作 - 除了让用户误以为没有更多数据可查看之外他们尝试用它来滚动,但没有任何移动。

有什么方法可以通过 jqGrid 配置或 CSS“魔法”来隐藏子网格上的水平滚动条吗?我使用了 Chrome 开发工具,但似乎没有专门与滚动条关联的 DIV 标记,只有标题、页眉和数据行。

版本:

  • jQuery :     1.4.2
  • jQueryUI:1.8.5
  • jqGrid :      3.8.1
  • 浏览器:Chrome 8、IE 8
jQuery(document).ready(function () {
    jQuery('#ParentGrid').jqGrid({
        url: '[URL TO GET DATA]',
        width: '100%',
        height: '100%',
        shrinkToFit: 'false',
        datatype: 'json',
        mtype: 'POST',
        jsonReader: { repeatitems: false },
        sortname: 'ParentRowID',
        sortorder: 'asc',
        colNames: [
            'Parent Row ID'
        ],
        colModel: [
            { name: 'ParentRowID', index: 'ParentRowID', width: 110, align: 'left' }
        ],
        gridComplete: function () {
            $('.ui-jqgrid-titlebar-close', '#ParentGrid').remove();
        },            
        subGrid: true,
        subGridRowExpanded: function (subgrid_id, row_id) {
            var subgrid_table_id = subgrid_id + '_t';
            $('#' + subgrid_id).html("<table id='" + subgrid_table_id + "' cellpadding='0' cellspacing='0'></table>");
            $('#' + subgrid_table_id).jqGrid({
                url: '[URL TO GET DATA BASED ON PARENT GRID SELECTED ROW ID]',
                width: '100%',
                height: '100%',
                shrinkToFit: 'false',
                datatype: 'json',
                mtype: 'POST',
                jsonReader: { repeatitems: false },
                sortname: 'ChildRowID',
                sortorder: 'asc',
                colNames: [
                    'Child Row ID'
                ],
                colModel: [
                    { name: 'ChildRowID', index: 'ChildRowID', width: 110, align: 'left' }
                ],
                gridComplete: function () {
                    $('.ui-jqgrid-titlebar-close', '#' + subgrid_table_id).remove();
                }
            });
        }
    });
});

最佳答案

我也遇到了同样的问题,通过添加css解决了。你可以这样做:

#ParentGrid .ui-jqgrid-bdiv{
        overflow-x:hidden;
    }

关于jquery - 如何隐藏 jqGrid 子网格上的水平滚动条?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4391893/

相关文章:

javascript - 将外部 JSON 加载到 ChartJs

javascript - 动态创建 jquery-ui 可拖动句柄

jquery-ui - 指定 jQuery UI 工具提示 CSS 样式

jquery - 粘性 jquery-ui 对话框不让鼠标指针离开

jquery - 如何增加最新 jqgrid 中高级搜索表单的默认宽度?

css - jqGrid:如何显示网格底部的添加/编辑图标

javascript - 打字太快时不会触发按键事件的功能

javascript - 如何让我的选项卡 100% 位于顶部?

javascript - knockout JS : Using nested conditional if statements for virtual elements

jqgrid - 如何禁用JQGrid编辑中的回车键?