展开/折叠树数据
expanding/collapsing tree data
我使用ag-grid(免费)与Angular 1,我已经得到了我的树数据显示所需,其中一个节点的子节点是在它的右边的列。然而,我想做的是在双击时折叠或展开节点。现在我只专注于让它们折叠,因为我的默认视图设置为展开。下面是双击事件的代码,在$scope.gridOptions:
中给出onCellDoubleClicked: function(event){
event.node.expanded = false;
$scope.gridOptions.api.refreshView();
};
我的假设是,将expanded属性更改为false将导致refreshView调用重新呈现子节点折叠的网格,但双击后视图不变。
同时,我的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;
}
}
关于我如何解决这个问题没有购买企业的想法吗?我知道在企业中你可以对行进行分组,这是内置的展开/折叠功能。
在我自己的应用程序中,我创建了一个模拟行分组特性的变通方法。它真正做的是从网格中添加和删除数据。
此选项的一个缺点是,由于行实际上不在表中,因此列上的任何过滤或排序实际上不能在未显示的数据上进行,这与网格提供的实际企业功能不同。但是,如果你已经禁用了过滤和排序,那么这个选项是完全可行的。
像这样:
function toggleExpansion(index, data) {
if (insert) {
gridOptions.api.insertItemsAtIndex(index, data);
} else {
gridOptions.api.removeItems(data)
}
}
我的具体代码进行了更多的检查和其他与这个问题无关的事情,但这是我所做的工作的简单解释。
我使用的是React,但你也可以用Angular做类似的事情:
function expandAll(expand) {
agGridRef.current.api.forEachNode((node) => {
node.setExpanded(expand);
});
}
,其中agGridRef是对组件的引用:
<AgGridReact
ref={agGridRef}
.
.
.
</AgGridReact>
相关文章:
- 用程序搜索JQuery数据表中的文本
- 要求输入在数据列表中
- 正在将数据主题添加到所有项目
- ASP.Net VB - 显示数据折叠样式
- 引导程序 3 折叠面板中的 Jquery 数据表响应插件
- d3.js强制可折叠图-输入数据是对象数组
- 如何删除 jquery 可折叠数据角色=“可折叠”
- 从 CSV 数据创建 D3.js 可折叠树
- 数据表 - 展开和折叠嵌套行时出现问题
- 我是否可以在 Bootstrap 3 中为折叠手风琴指定一个相对的“数据目标”,同时保留“折叠其他”功能
- 具有非树数据的可折叠 D3 力定向图
- 使用引导选项卡窗格和折叠项的数据绑定错误
- Bootstrap 3可折叠面板,没有id或数据
- 在数据表中折叠表头会破坏我的表格式
- 展开/折叠树数据
- jqGrid Treegrid在动态加载数据后不展开和折叠行
- Ng-Grid将在数据刷新后折叠行,如何防止这种情况
- 如何在html的行之间折叠/展开数据
- 禁用数据切换元素中的链接折叠
- 来自php的Ajax响应不会将接收到的数据显示为可折叠的- jquery移动