【问题标题】:Is there any way to start subgrid with particular column of main grid or can we shift subgrid icon column postion?有什么方法可以从主网格的特定列开始子网格,或者我们可以移动子网格图标列的位置吗?
【发布时间】:2014-12-15 13:32:06
【问题描述】:

请看我下面的 jqgrid 子网格图片,

问题 1:默认情况下,我的子网格从父网格列“ID”(父网格的第一列)开始,我们可以从父网格的第三列(联系人姓名)开始我的子网格吗?

问题 2:或者,是否有机会将子网格图标 (+) 列移动到父网格的第二列之后,因此我的子网格将从父网格的第三列开始?

请推荐,谢谢!

【问题讨论】:

    标签: jqgrid


    【解决方案1】:

    如下图所示的带有标准子网格的行

    由我用不同颜色标记的三个部分组成。对应的 HTML 结构如下图所示

    jqGrid 创建一个空的<div>(见<div class="tablediv" id="list_1"></div> 标记为红色)并以div 的id(上图中的“list_1”)作为第一个参数的值调用subGridRowExpanded 回调。一个人在 div 中放置一个空的<table> 和一些独特的id 属性,并从<table> 创建网格。典型代码如下所示

    subGridRowExpanded: function (subgridId, rowid) {
        var $table = $("<table id='" + subgridId + "_t'></table>");
        $("#" + subgridId).append($table);
        $table.jqGrid({
            // ...
        });
    }
    

    你可以做的是在&lt;div&gt;上设置一些CSS属性,把表格放在你需要的地方。例如,我在图片上使用的演示的父网格中有 "sequence" 列。标题列的标题有gridId + "_sequence" id。因此可以使用以下代码设置padding-left 跳过第一列:

    subGridRowExpanded: function (subgridId, rowid) {
        var $table = $("<table id='" + subgridId + "_t'></table>");
        $("#" + subgridId).append($table)
            // set padding-left to the outer width of the first column "sequence"
            // of the parent grid
            .css("padding-left", $("#" + this.id + "_sequence").outerWidth() + "px");
        $table.jqGrid({
            // ...
            autowidth: true
        });
    }
    

    使用padding-left的好处:可以在子网格中使用autowidth: true来调整子网格的大小以填充子网格行的右侧部分。

    The demo 使用代码。结果如下图所示

    您可以更改subGridRowExpanded 内的子网格行的其他属性以实现您的确切目标。

    【讨论】:

    • 这意味着,我们不能移动加号列,这里加号列是第二列,因为我们将行号显示为第一列,对吧?
    • @user2994834:您不应更改“子网格”列的位置。取而代之的是,您可以在单击父网格行中的任何位置时展开/折叠子网格。我为the answer 创建的the demo 展示了如何在选择行时展开/折叠子网格(请参阅onSelectRow 内部的toggleSubGridRow)。查看我为您制作的one more demo 并尝试选择行。
    • 感谢 Oleg,我喜欢 the demo,但是我们可以在“名称”列数据(myfirstchapter、mysecondchapter)附近显示加号图标吗?当单击该行时,我们可以将加号更改为减号吗?谢谢!
    猜你喜欢
    • 2019-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-19
    • 1970-01-01
    • 2019-12-12
    • 1970-01-01
    • 2012-12-21
    相关资源
    最近更新 更多