【问题标题】:jqGrid, set the subgrid column widths as percentages?jqGrid,将子网格列宽设置为百分比?
【发布时间】:2013-05-01 14:02:39
【问题描述】:

我将主网格设置为autowidth: true,但是如何对子网格执行相同操作,使其与父网格的宽度相同,并且列都是相对/可变/百分比宽度?

【问题讨论】:

  • 您能否发布更多代码来展示您如何使用 jqGrid 以及如何创建子网格?您使用subgrid as grid 还是使用old style subgrids 使用subGridModel?哪个datatype 用于主网格和子网格?您是一次加载网格和子网格的所有数据还是在扩展时加载?
  • 我使用的是旧样式,我从未见过新的方式。我会尝试更改我的代码。谢谢。
  • 不客气!使用网格作为子网格真的很容易。只需实现subGridRowExpanded 回调即可。 jqGrid 为子网格创建新行并为子网格的右侧(主)部分创建 div。然后它调用subGridRowExpanded 回调。因此,您可以在 div any 内创建 HTML 数据(参见 the answer 的演示)。如果在 div 中附加空的 <table> 元素,则可以在其中创建 jqGrid。所以一切都非常简单而且非常灵活。我建议你只在 subgrid 中使用 idPrefix 以防止 id 重复。

标签: javascript jqgrid


【解决方案1】:

您在评论中写到其他回答问题

为什么colModel和subGridModel是两个完全不同的数据 结构?

您间接回答了自己的主要问题。旧式子网格的使用(参见the official jqGrid demo 上的“高级”/“子网格”)有太多限制。如果您使用subgrid as grid(请参阅the the same jqGrid demo 上的“高级”/“作为子网格的网格”),您可以创建相同的结果,但您有更多的灵活性。例如,您可以使用格式化程序(包括自定义格式化程序)使用 cellattrrowattr 回调,在子网格中使用 autowidth: true 选项等等。您拥有与主网格中完全相同的一组可能性。如果你在$.jgrid.defaults中定义了一些常用的回调,可以分享下子网格和主网格的回调代码...

我可以继续列出使用网格作为子网格的优点。我的简短建议:始终只使用该功能。

【讨论】:

    【解决方案2】:

    subGrid 的宽度将在初始化时设置,并且由于它在构建时不包含任何数据,因此它将是总列宽的大小。您可以通过在每次加载子网格时设置网格的宽度来解决此问题

    $('#ParentGridName, #SubGridName').jqGrid('setGridWidth', $('#IdOfHTMLElementHoldingGrids').width(), true);
    

    这将同步父网格和子网格的大小。如果您担心窗口也被重新调整大小,您可以将其作为事件处理程序的一部分调用。

    例如

    window.onresize = function () { resizePageGrids() }
    

    【讨论】:

    • 现在我已经修改了css .tablediv>table { width: 100%; },我越用越不喜欢jqGrid。为什么 colModel 和 subGridModel 是两个完全不同的数据结构?啊!
    猜你喜欢
    • 1970-01-01
    • 2020-06-10
    • 1970-01-01
    • 2012-05-20
    • 2013-03-12
    • 2013-10-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-08
    相关资源
    最近更新 更多