问题背景:
界面使用左侧tree,右侧datagrid的布局。
点击左侧的树节点,右侧显示当前节点下的数据,右侧操作完以后左侧树的数据会发生改变,所以左侧的树需要刷新(reload)。
刷新完以后,树的选中状态没了。
解决办法:
思路:点击左侧树的节点时记录点击的nodeId,加载完以后重新选择该节点。
代码实现:
var nodeId;
$(function(){
$('#tree').tree({
url:url,
checkbox:false,
onClick:function(node){
nodeId=node.id;
},
onLoadSuccess(data){
if(nodeId!=null){
var node = $('#tree').tree('find', nodeId);
$('#tree').tree('expandTo', node.target).tree('select', node.target);
}
}
});
}) ;
刷新tree的数据:
$('#tree').tree('reload');
重新选择的代码必须放在onLoadSuccess方法里,否则不起作用