Extjs4 TreeGrid选择某个节点同时选中父节点与所有子节点,报错了

由于限制原因只能贴出这么多代码请大家帮忙小弟在此谢谢大家columns:[{xtype:'treecolumn',text:'中文名称',sortable:true,da... 由于限制原因 只能贴出这么多代码 请大家帮忙 小弟在此谢谢大家
columns: [{ xtype: 'treecolumn', text: '中文名称',sortable: true, dataIndex: 'MenuChnName',locked: true }]
用以下方法选择父节点与子节点报错

CheckMenuTree.on({

'selectionchange': function (node, checked) {
CheckMenuTree.expandAll();
//选择父节点

setPnode(node, checked);
//选择子节点

setCnode(node, checked);
}
});
function setPnode(node, checked) {
if (node.parentNode) {
var flg = 0;
node.parentNode.eachChild(function (child) {
if (child.get('checked')) {
node.parentNode.set('checked', true);
} else {
flg++;
if (flg == node.parentNode.childNodes.length) {
node.parentNode.set('checked', false);
}
}
});
setPnode(node.parentNode, checked);
}
}
function setCnode(node, checked) {
if (node) {
node.eachChild(function (child) {
child.set('checked', checked);
setCnode(child, checked);
});
}
}
展开
 我来答
cqh46
2013-07-15 · TA获得超过3292个赞
知道大有可为答主
回答量:2149
采纳率:100%
帮助的人:1278万
展开全部
选择某子节点时,要同时选择所选的父子点 以及 同等级的子节点,是吗?
如果是这样,会死循环的吧。。

如果不是这样,selectionchange 替换成 itemclick 试试。
追问
node.eachChild取不到值,我的想法是点击某个节点如果是父节点就循环取它下面的子节点同时循环取它以上所有的父节点,现在遇到的问题是如何判断node.parentNode它是否有父节点同时取它所有的子节点node.eachChild,在Tree可以取到,但是在TreeGrid中取不到了
追答
你用的是 Ext.tree.Panel 吧?

首先创建的时候 属性配置里要加 multiSelect : true 这个。

这个控件有个 previousNode 方法 和 getRootNode 方法。

看字面应该能知道意思吧。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式