weixin_42306390 2009-09-02 09:40
浏览 241
已采纳

Extjs 复选问题

var areaProvinceTree = new Ext.tree.TreePanel({
id : 'areaProvincetree',
width : (mywidth - 200) * 1 / 4 - 2,
height : myheight * 1 / 2,
title : '地域范围',
autoScroll : true,
containerScroll : true,
root : new Ext.tree.AsyncTreeNode({
text : '地域范围',
draggable : false,
isAncestor : true,
checked : false,
id : '-1'
}),
loader : new Ext.tree.TreeLoader({
dataUrl : 'showAreaProvinceTree.action',//返回所有数据
baseParams : {
type : ''
}
})
});
areaProvinceTree.on('checkchange', function(node, checked) {
node.expand();
node.attributes.checked = checked;
node.eachChild(function(child) {
child.ui.toggleCheck(checked);
child.attributes.checked = checked;
child.fireEvent('checkchange', child, checked);
});
}, areaProvinceTree);
areaProvinceTree.on('load', function() {
//tempMsg.areaProvince为dwr返回的放有节点数据的数组
if (tempMsg != null && tempMsg.areaProvince.length > 0) {
for (var i = 0; i < tempMsg.areaProvince.length; i++) {
areaProvinceTree.getNodeById(tempMsg.areaProvince[i].statisticsObjectId).attributes.checked = true;
}
tempMsg.areaProvince = [];
}
});

问题是rootNode.expand();只展开一层,如果我自己写全部展开的话。没展开的节点还是找不到的。
全部展开后的事件,好像又没有吧!?怎么办啊?

[b]问题补充:[/b]
tree的json数据会根据其他控件选择情况返回不同的数据。
grid的行点击事件又会根据dwr返回的数据,将所有返回的节点进行选择。如果在后台直接将json数据封装好的话。后台会特别复杂的。
dwr返回的数据就是节点的id。选择树中id为该数据的节点(也就是打勾)。

说白了,就是需要一个在前台进行树节点选择。
但是要在树数据加载完后,并且全部展开后才进行树节点选择。异步的问题。!!

  • 写回答

2条回答 默认 最新

  • iteye_10013 2009-09-02 10:26
    关注

    试着:
    监听treeloader的load事件,每载入一次,就去执行一次选择操作.
    然后你treepanel.expandAll();

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗
  • ¥15 钢筋实图交点识别,机器视觉代码
  • ¥15 如何在Linux系统中,但是在window系统上idea里面可以正常运行?(相关搜索:jar包)
  • ¥50 400g qsfp 光模块iphy方案
  • ¥15 两块ADC0804用proteus仿真时,出现异常
  • ¥15 关于风控系统,如何去选择