EXTJS 5 在树状网格中隐藏节点
EXTJS 5 hide node in treegrid
有没有办法在树状网格中隐藏节点(父节点或子节点)?我将可见的 属性 设置为 false 但它并没有消失:(这里是 fiddle link: https://fiddle.sencha.com/#fiddle/jl1)
var tree = Ext.create('Ext.tree.Panel', {
renderTo: Ext.getBody(),
title: 'TreeGrid',
width: 300,
height: 250,
fields: ['name', 'description'],
columns: [{
xtype: 'treecolumn',
text: 'Name',
dataIndex: 'name',
width: 150,
sortable: true
}, {
text: 'Description',
dataIndex: 'description',
flex: 1,
sortable: true
}],
root: {
expanded: true,
children: [{
name: 'Group 1',
expanded: true,
children: [{
name: 'Child 1.1',
description: 'Description 1.1',
leaf: true
},{
name: 'Child 1.2',
description: 'Description 1.2',
leaf: true
}]
}, {
name: 'Group 2',
expanded: true,
children: [{
name: 'Child 2.1',
description: 'Description 2.1',
leaf: true
},{
name: 'Child 2.2',
description: 'Description 2.2',
leaf: true
}]
}]
}
});
var button = Ext.create('Ext.button.Button', {
renderTo: Ext.getBody(),
text: 'Remove group 1',
handler: function() {
var group1 = tree.getRootNode().childNodes[0];
group1.set('visible', false);
}
});
注意:我不想删除节点,我想隐藏它,稍后再显示它(我想这样做是因为 remove/add 树网格上的行为非常错误:S )!
提前致谢:)!
你应该和 tree store 一起工作。使用过滤器从树中隐藏值。
我已经修复了你的 fiddle。 https://fiddle.sencha.com/#fiddle/jl8
我使用 filterBy
方法来修复它。如果函数 returns true 则 Record 被包含到树中,否则被过滤掉。
这里有一些关于该主题的更多文档http://docs.sencha.com/extjs/5.1/5.1.0-apidocs/#!/api/Ext.data.TreeStore
有没有办法在树状网格中隐藏节点(父节点或子节点)?我将可见的 属性 设置为 false 但它并没有消失:(这里是 fiddle link: https://fiddle.sencha.com/#fiddle/jl1)
var tree = Ext.create('Ext.tree.Panel', {
renderTo: Ext.getBody(),
title: 'TreeGrid',
width: 300,
height: 250,
fields: ['name', 'description'],
columns: [{
xtype: 'treecolumn',
text: 'Name',
dataIndex: 'name',
width: 150,
sortable: true
}, {
text: 'Description',
dataIndex: 'description',
flex: 1,
sortable: true
}],
root: {
expanded: true,
children: [{
name: 'Group 1',
expanded: true,
children: [{
name: 'Child 1.1',
description: 'Description 1.1',
leaf: true
},{
name: 'Child 1.2',
description: 'Description 1.2',
leaf: true
}]
}, {
name: 'Group 2',
expanded: true,
children: [{
name: 'Child 2.1',
description: 'Description 2.1',
leaf: true
},{
name: 'Child 2.2',
description: 'Description 2.2',
leaf: true
}]
}]
}
});
var button = Ext.create('Ext.button.Button', {
renderTo: Ext.getBody(),
text: 'Remove group 1',
handler: function() {
var group1 = tree.getRootNode().childNodes[0];
group1.set('visible', false);
}
});
注意:我不想删除节点,我想隐藏它,稍后再显示它(我想这样做是因为 remove/add 树网格上的行为非常错误:S )!
提前致谢:)!
你应该和 tree store 一起工作。使用过滤器从树中隐藏值。
我已经修复了你的 fiddle。 https://fiddle.sencha.com/#fiddle/jl8
我使用 filterBy
方法来修复它。如果函数 returns true 则 Record 被包含到树中,否则被过滤掉。
这里有一些关于该主题的更多文档http://docs.sencha.com/extjs/5.1/5.1.0-apidocs/#!/api/Ext.data.TreeStore