ExtJS:Treepanel选择改变后会触发哪个事件?

时间:2015-07-24 13:34:22

标签: javascript extjs extjs4 extjs4.1

我想在ExtJS TreePanel中强制选择RootNode,然后在treepanel的selectionchange事件中执行一些操作。之后,我想从treepanel获取选定的行并将其作为事件参数传递。我能够用给定的代码实现它,但有时'selModel.getSelection()'没有获得所有选定的行。可能在完成selectionchange事件之前它正在进行下一行。

var tree = this.getTree();
var selModel = tree.getSelectionModel();
selModel.select(tree.getRootNode()); // fires selectionchange event

var selectedRows = selModel.getSelection(); 
if (selectedRows.length > 0) {
//Here I fire another event by passing selectedRows as parameter
}

selectionchange: function(){
//some looping operation
}

如果有人能帮助我,那会很棒。感谢

1 个答案:

答案 0 :(得分:0)

不知道为什么要调用此代码:selModel.select(tree.getRootNode());

不会更有效率

替换它:

var tree = this.getTree();
var selModel = tree.getSelectionModel();
selModel.select(tree.getRootNode()); // fires selectionchange event

var selectedRows = selModel.getSelection(); 
if (selectedRows.length > 0) {
//Here I fire another event by passing selectedRows as parameter
}

selectionchange: function(){
//some looping operation
}

并做到这一点:

var tree = this.getTree();
var selectedRows= tree.getSelectionModel().getSelection();//This line grab all selected items by user.
//rest code the same
if (selectedRows.length > 0) {
//Here I fire another event by passing selectedRows as parameter
}