我想要一个“重置”方法来取消选中Ext.tree.TreePanel
.
问问题
13468 次
4 回答
7
tree.getRootNode().cascade(function(n) {
var ui = n.getUI();
ui.toggleCheck(false);
});
于 2011-01-28T21:10:39.243 回答
2
我无法获得使用 Extjs 4.0.7 的任何其他答案。此外,使用“级联”方法会发出警告,表明它已被弃用。它建议改用“cascadeBy”。除了方法名称之外,我无法在方法签名中找到差异(相同的参数、this、行为)。
但是,我能够找到有效的代码:
{
xtype: 'button',
text: 'Deselect All',
listeners:{
click: function(){
var tree = Ext.ComponentQuery.query( 'treepanel[itemId=user_flags_tree]')[0];
tree.getRootNode().cascadeBy(function(){
this.set( 'checked', false );
});
}
}
}
于 2012-04-18T17:59:26.910 回答
2
我找到了如下方法,但似乎“casecade”方法效果不佳,我需要多次调用“reset”来取消选中所有选中的子项:
reset: function (){
startNode = this.root;
var f = function () {
if (this.attributes.checked) {
this.attributes.checked = false;
this.getUI().toggleCheck(false);
}
};
startNode.cascade(f);
}
于 2010-12-16T02:27:04.990 回答
0
var nodes = treePanel.getView().getNodes();
var records = treePanel.getView().getRecords(nodes);
for (var i = 0; i < records.length; i++) {
records[i].set('checked',true);
}
于 2016-06-09T05:27:22.850 回答