【问题标题】:Angular UI Grid conditional row expandAngular UI Grid条件行展开
【发布时间】:2026-01-27 16:45:01
【问题描述】:

我正在使用 Angular UI Grid 和 ui-grid-expandable 插件。 如果显示展开按钮 (+),有没有办法决定每一行? 默认情况下,它始终显示,无论子网格中是否有可用数据。

谢谢。

【问题讨论】:

标签: javascript angularjs angular-ui-grid


【解决方案1】:

很遗憾,目前还没有这样的选择。

您可以使用以下方法让事情如您所愿:

  • 通过设置为false删除默认行标题enableExpandableRowHeader
  • 通过调用$scope.gridApi.core.addRowHeaderColumn添加自定义行标题

这样您就可以构建自己的逻辑。我在this plunkr 中做了类似的事情。

如果您需要更多信息:

【讨论】:

    【解决方案2】:

    我有一个 UI-GRID 的拉取请求可以解决这个问题。

    您向 subGridOptions 添加一个名为 disableRowExpandable 的布尔值。

    https://github.com/angular-ui/ui-grid/pull/6135/commits/83ade3445711e532f689d224904babfe92c7b45e

    【讨论】:

      【解决方案3】:

      是的,你可以!

      添加到 subGridOptions 对象这个选项:

      disableRowExpandable:(condition here).
      

      【讨论】:

        【解决方案4】:

        只需使用最新版本的 UI GRID

        https://cdnjs.cloudflare.com/ajax/libs/angular-ui-grid/4.11.0/ui-grid.min.js

        然后在 subGridOptions 中使用属性 disableRowExpandable

        这里有一个小例子。

        for (i = 0; i < response.data.result.length; i++) {
                            if (response.data.result[i].SubProcesos != null) {
                                response.data.result[i].subGridOptions = {
                                    columnDefs: establecerColDefs(response.data.Rol),
                                    data: response.data.result[i].SubProcesos,
                                    disableRowExpandable: false
        
                                };
                            } else {
                                response.data.result[i].subGridOptions = {
                                    columnDefs: [{ }],
                                    data:[{}],
                                    disableRowExpandable: true
                            };
                            }
                        }
        

        【讨论】: