角度 UI 网格可展开行选择更改更新父项



我使用Angular-UI Grid和ui-grid-expandable选项。如果选择了可展开(子)网格的一行,是否有选项也可以选择父网格行?如果不是至少我需要访问子(可扩展)网格的 rowSelectionChanged 事件中的父网格/行,它似乎没有自己的范围?

 gridApi.selection.on.rowSelectionChanged($scope, function (rows) {
             var selectedRows=gridApi.selection.getSelectedRows();
             ...
             //select parent grid row here...
              });

是的,有一种方法可以做到这一点。您只需向后走上范围即可访问父行和父行的网格 api。请记住,appScope始终引用网格的父范围。因此,在可展开的子网格中,父范围包含行对象。

在子网格的onRegisterApi处理程序中,您可以通过以下方式访问父行:row.grid.appScope.row 。然后,您可以使用以下内容选择父行: row.grid.appScope.row.grid.api.selection.selectRow(row.grid.appScope.row.entity)

下面是一个代码示例,可以稍微清理一下:

onRegisterApi: function (api) {
  api.selection.on.rowSelectionChanged($scope, function (row, event) {
    var parentRow = row.grid.appScope.row;
    if (api.selection.getSelectedRows().length > 0) {
      parentRow.grid.api.selection.selectRow(parentRow.entity);
    }
    else {
      parentRow.grid.api.selection.unSelectRow(parentRow.entity);
    }
  });
}

还有一个演示弹道机:http://plnkr.co/edit/7HFHPTtmcXvgoJCKiRTd?p=preview

最新更新