我从网找的例子做的,树的菜单和checkbox都能显示出来,问题是我想选中父节点后,子节点也会被选中,选中后应该弹出一个对话框,现在这些都没实现。请各位帮着看看
<script>
Ext.onReady(function() {
var tree = new Ext.tree.TreePanel({
renderTo : 'tree',
// el:'tree-ct',
width:568,
height:300,
checkModel: 'cascade', //对树的级联多选
onlyLeafCheckable: false,//对树所有结点都可选
animate: false,
rootVisible: false,
autoScroll:true,
loader: new Ext.tree.TreeLoader({
dataUrl:'ext_1.txt',
baseAttrs: { uiProvider: Ext.tree.TreeCheckNodeUI } //添加 uiProvider 属性
}),
root: new Ext.tree.AsyncTreeNode({ id:'0' })
});
tree.on("check",function(node,checked){alert(node.text+" = "+checked)}); //注册"check"事件
// tree.render();
});</script>
<script>
Ext.onReady(function() {
var tree = new Ext.tree.TreePanel({
renderTo : 'tree',
// el:'tree-ct',
width:568,
height:300,
checkModel: 'cascade', //对树的级联多选
onlyLeafCheckable: false,//对树所有结点都可选
animate: false,
rootVisible: false,
autoScroll:true,
loader: new Ext.tree.TreeLoader({
dataUrl:'ext_1.txt',
baseAttrs: { uiProvider: Ext.tree.TreeCheckNodeUI } //添加 uiProvider 属性
}),
root: new Ext.tree.AsyncTreeNode({ id:'0' })
});
tree.on("check",function(node,checked){alert(node.text+" = "+checked)}); //注册"check"事件
// tree.render();
});</script>
之前解决的一个问题,应该和你的问题差不多吧,看看能否解决你现在的情况.
tree.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);
});
}, tree);