我使用angular-ui-grid 3.0.5和treeview扩展来显示一个树。数据加载正常,一切工作正常,除了expandRow静默失败。
我的用例是这样的:假设我们有一个类似a>b>c的路径,我需要向用户显示预选的c。我知道选择是正确的,因为当我手动展开父行时,子行确实被选中了。
如果我调用expandAllRows,所有行都将展开。但是,使用从gridOptions.data获取的行a和b上的引用调用expandRow不会导致任何事情发生:所有行都将保持折叠状态。
有没有我可能忽略的预防措施,或者这是一个bug?
在一个已结束的问题中有one mention,可能与此有关,但我遇到了问题,但我甚至不确定它是否相关,考虑到评论/解决方案的枯燥程度。
在文档中没有使用expandRow的示例,但是在应用编程接口和源代码中都有。
发布于 2016-05-24 18:23:19
文档http://ui-grid.info/docs/#/api/ui.grid.treeBase.api:PublicApi中提到的gridRow对象不是您放入数据数组中的元素(尽管似乎没有在任何地方对此进行解释)。
该函数期望的是网格在构建树时创建的对象,您可以通过循环遍历网格treeBase.tree数组来访问它们。这似乎只有当网格构建了树时才有效,因此在填充数据时不能直接使用,这就是为什么注册DataChangeCallback对https://github.com/angular-ui/ui-grid/issues/3051有帮助
// expand the top-level rows
// https://github.com/angular-ui/ui-grid/issues/3051
ctrl.gridApi.grid.registerDataChangeCallback(function() {
if (ctrl.gridApi.grid.treeBase.tree instanceof Array) {
angular.forEach(ctrl.gridApi.grid.treeBase.tree, function(node) {
if (node.row.treeLevel == 0) {
ctrl.gridApi.treeBase.expandRow(node.row);
}
});
}
});发布于 2018-07-13 01:25:16
self.onContentReady = function (e) {
e.component.expandRow(e.component.getKeyByRowIndex(0));
e.component.expandRow(e.component.getKeyByRowIndex(1));
};选择要扩展的行
https://stackoverflow.com/questions/35695008
复制相似问题