首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >展开Angular-ui-grid中的特定行

展开Angular-ui-grid中的特定行
EN

Stack Overflow用户
提问于 2016-02-29 16:37:18
回答 2查看 2K关注 0票数 0

我使用angular-ui-grid 3.0.5和treeview扩展来显示一个树。数据加载正常,一切工作正常,除了expandRow静默失败。

我的用例是这样的:假设我们有一个类似a>b>c的路径,我需要向用户显示预选的c。我知道选择是正确的,因为当我手动展开父行时,子行确实被选中了。

如果我调用expandAllRows,所有行都将展开。但是,使用从gridOptions.data获取的行a和b上的引用调用expandRow不会导致任何事情发生:所有行都将保持折叠状态。

有没有我可能忽略的预防措施,或者这是一个bug?

在一个已结束的问题中有one mention,可能与此有关,但我遇到了问题,但我甚至不确定它是否相关,考虑到评论/解决方案的枯燥程度。

在文档中没有使用expandRow的示例,但是在应用编程接口和源代码中都有。

EN

回答 2

Stack Overflow用户

发布于 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有帮助

代码语言:javascript
复制
// 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);
      }
    });
  }
});
票数 0
EN

Stack Overflow用户

发布于 2018-07-13 01:25:16

代码语言:javascript
复制
  self.onContentReady = function (e) {
        e.component.expandRow(e.component.getKeyByRowIndex(0));
        e.component.expandRow(e.component.getKeyByRowIndex(1));
    };

选择要扩展的行

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35695008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档