wit*_*ion 5 javascript ag-grid
我正在将 ag-grid (免费)与 Angular 1 一起使用,并且我已经根据需要显示了树数据,其中节点的子节点位于其右侧的列中。但是,我想要做的是双击时折叠或展开节点。现在只专注于让它们折叠,因为我的默认视图设置为展开。这是我的双击事件的代码,在 $scope.gridOptions 中给出:
onCellDoubleClicked: function(event){
event.node.expanded = false;
$scope.gridOptions.api.refreshView();
};
Run Code Online (Sandbox Code Playgroud)
我的假设是,将 Expanded 属性更改为 false 会导致刷新视图调用重新渲染子节点折叠的网格,但双击后视图保持不变。
另外,我的 getChildNodeDetails 在 gridOptions 中:
getNodeChildDetails: function(obj){
if (obj.children){
var nodeType = obj.breakdownCol;
return {
group: true,
expanded: obj.expanded || true,
children: obj.children,
field: 'name',
key: obj[nodeType]
}
} else {
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
关于如何在不购买企业的情况下解决此问题的任何想法?我知道在企业中您可以对行进行分组,这带有内置的展开/折叠功能。
在我自己的应用程序中,我创建了一个模拟行分组功能的解决方案。它真正做的是从网格中添加和删除数据。
此选项的一个缺点是,由于行实际上不在表中,因此实际上无法对未显示的数据进行列上的任何过滤或排序,这与网格提供的实际企业功能不同。但是,如果您禁用了过滤和排序,那么此选项是完全可行的。
像这样的东西:
function toggleExpansion(index, data) {
if (insert) {
gridOptions.api.insertItemsAtIndex(index, data);
} else {
gridOptions.api.removeItems(data)
}
}
Run Code Online (Sandbox Code Playgroud)
我的具体代码涉及更多检查和与这个问题无关的其他事情,但这是我正在做的工作的简单解释。
| 归档时间: |
|
| 查看次数: |
9757 次 |
| 最近记录: |