有没有办法只在extjs树中显示父节点
Is there a way to only show parent nodes in a extjs tree
我想在extjs中只显示树的父节点。在我的数据存储中也有叶节点。
输出应该像-
文件夹1文件夹1.1文件夹2文件夹3
创建一个只获取父节点的过滤器对象,并将其添加到存储配置中:
例如,仅用于父节点的过滤器:
var nodeFilter = new Ext.util.Filter({
property: 'leaf',
value : false
});
把它放在树存储配置:
var yourTreeStore = Ext.create('Ext.data.TreeStore', {
// other configs ...
filters: [nodeFilter]
});
编辑:
incutonez是对的,我根据API属性提交,但没有注意到缺少的函数。不过,它们很容易被覆盖,从而为树存储应用过滤。这在4.1b2:中对我有效
Ext.override(Ext.data.TreeStore, {
hasFilter: false,
filter: function(filters, value) {
if (Ext.isString(filters)) {
filters = {
property: filters,
value: value
};
}
var me = this,
decoded = me.decodeFilters(filters),
i = 0,
length = decoded.length;
for (; i < length; i++) {
me.filters.replace(decoded[i]);
}
Ext.Array.each(me.filters.items, function(filter) {
Ext.Object.each(me.tree.nodeHash, function(key, node) {
if (filter.filterFn) {
if (!filter.filterFn(node)) node.remove();
} else {
if (node.data[filter.property] != filter.value) node.remove();
}
});
});
me.hasFilter = true;
},
clearFilter: function() {
var me = this;
me.filters.clear();
me.hasFilter = false;
me.load();
},
isFiltered: function() {
return this.hasFilter;
}
});
通过代码中的这种覆盖,您可以根据Ext.util.Filterneneneba API:将"仅叶"过滤器创建为函数或属性/值对
// leaf only filter as a property/value pair
var nodeFilter = new Ext.util.Filter({
property: 'leaf',
value : false
});
// leaf only filter as a function
var nodeFilter = Ext.create('Ext.util.Filter', {
filterFn: function(item) {
return !item.data.leaf;
}
});
然后,只要去掉叶节点,就可以调用filter函数:
myTreeStore.filter(nodeFilter);
TreeStore不继承过滤(因为它们是抽象存储),所以Geronimo的答案对我不起作用。我希望它能起作用,因为它会让我的生活轻松很多。
无论如何,我在Sencha论坛上有一个线程,它提供了工作过滤解决方案。在我的例子中,过滤是由filterBy函数调用的,所以我相信你可以调整它来实现你的方式。
相关文章:
- 在自定义截面树中获取父节点
- jQuery树菜单-不显示父类别
- 如何避免在取消选中子节点时取消选中父节点
- 如果未选中子节点,则未选中父节点
- 仅使用某些子节点访问xml中父节点的子节点
- 如何以编程方式在 jsTree 中选择一个节点并打开所有父节点
- 如何在 JStree 3 中显示叶节点的类似文件的图标
- Jquery滑块,如果显示父项,则幻灯片不会全宽:无
- 使用Javascript设置带有子节点的父节点的类's文本等于.
- 如何确定父节点是否有子节点
- Javascript在没有jQuery的情况下获取X父节点
- 如何从wijmo-flex网格的树视图中的节点转到父节点
- jQuery:使用 show() 显示父节点的一些节点
- mcDropDown 插件:如何显示父节点属性
- 有没有办法只在extjs树中显示父节点
- 如何使用Kendo UI Treeview仅显示父节点
- ember中的动态路由显示父节点的模型,而不是自己的模型
- 显示具有多个父节点的D3树
- 使用jquery迭代XML并显示每个父节点的子节点
- 显示父节点 UL,对于根父节点,显示 UL 和 LI 节点