我使用Angular-UI Grid和ui-grid-expandable选项。如果选择了expandable(child)网格的一行,是否还可以选择父网格行?如果不是至少我需要访问子(可扩展)网格的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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句