论坛首页 Web前端技术论坛

EXT2.0 checkbox树的扩展(支持单选,级联多选,只选叶子等)

浏览 82937 次
精华帖 (6) :: 良好帖 (18) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-04-24  
xiexueze,多谢你了!
功能实现了。我还要不断的加油呀
0 请登录后投票
   发表时间:2008-04-28  
xiexueze,又要麻烦你了。
我想增加树的拖拽功能。想请教你一下!
0 请登录后投票
   发表时间:2008-04-29  
Dear All,

*****************************************************************
Ext.tree.TreePanel已经自带方法getChecked,意思是得到树中所有选中的结点集合.

如果使用Ext.tree.TreePanel.prototype.getChecked = function(node){....
重写getChecked方法,这方法得到的是树中所有选中的结点的ID集合,是不一样的哦....

如果是使用自带的,可以这样取到树的所有选中的结点ID

//点击实行的函数
function onItemClick(checked){
var checkedNodes = tree.getChecked();//tree必须事先创建好.
var checkedIds = [];
for(var i=0;i<checkedNodes.length;i++){
chekcedIds.push(checkedNodes[i].id)
}
alert(chekcedIds.join(','));
};
******************************************************************
以上方法得到所有选中节点的ID 字符串,我想过滤掉根节点ID,应该怎样写?

谢谢各位高手!!
0 请登录后投票
   发表时间:2008-05-07  
我试了下报错:'insertAdjacentHTML'为空或不是对象

尝试把targetNode打出来是'undefined'

是什么原因啊
0 请登录后投票
   发表时间:2008-05-07  
wudonggpe 写道
xiexueze,又要麻烦你了。
我想增加树的拖拽功能。想请教你一下!


新建树时,增加属性enableDD:true
如:
var tree = new Ext.tree.TreePanel({
    ...
enableDD:true,
...
      });
接着给tree注册事件:
tTree.on("movenode",treeMoveFun);

var treeMoveFun = function(treeContainer,node,oldParent,newParent){
...
}
0 请登录后投票
   发表时间:2008-05-07  
wudonggpe 写道
Dear All,

*****************************************************************
Ext.tree.TreePanel已经自带方法getChecked,意思是得到树中所有选中的结点集合.

如果使用Ext.tree.TreePanel.prototype.getChecked = function(node){....
重写getChecked方法,这方法得到的是树中所有选中的结点的ID集合,是不一样的哦....

如果是使用自带的,可以这样取到树的所有选中的结点ID

//点击实行的函数
function onItemClick(checked){
var checkedNodes = tree.getChecked();//tree必须事先创建好.
var checkedIds = [];
for(var i=0;i<checkedNodes.length;i++){
chekcedIds.push(checkedNodes[i].id)
}
alert(chekcedIds.join(','));
};
******************************************************************
以上方法得到所有选中节点的ID 字符串,我想过滤掉根节点ID,应该怎样写?

谢谢各位高手!!



您所说的根节点ID,是指树的根节点,还是树的第一层结点呢?
onItemClick方法取的节点不会包含根节点,因为根节点不会有checkbox.
如果想过滤掉第一层结点
在var checkedNodes = tree.getChecked()得到的checkedNodes中
去掉第一层结点tree.getRootNode().childNodes就行


0 请登录后投票
   发表时间:2008-05-20  
var tree = new Ext.tree.TreePanel({  
                applyTo:'tree-ct',  
                width:568,  
                height:300,  
                checkModel: 'cascade',  
                onlyLeafCheckable: false,  
                animate: false,  
                rootVisible: true,  
                autoScroll:true,  
                loader: new Ext.tree.TreeLoader({  
                    dataUrl:'getNodes.jsp',  
                    baseAttrs: { uiProvider: Ext.tree.TreeCheckNodeUI }  
                }),  
                root: new Ext.tree.AsyncTreeNode({  
                    id:'0',text:'根结点'  
                })  
            });
 
我们都是固定写了id:'0',text:'根结点'   。如果是后台传来的根节点id,text,我该如何做成一个活动的id 和 text.

******************************************************************
谢谢各位!
0 请登录后投票
   发表时间:2008-05-29  
wudonggpe 写道
var tree = new Ext.tree.TreePanel({  
                applyTo:'tree-ct',  
                width:568,  
                height:300,  
                checkModel: 'cascade',  
                onlyLeafCheckable: false,  
                animate: false,  
                rootVisible: true,  
                autoScroll:true,  
                loader: new Ext.tree.TreeLoader({  
                    dataUrl:'getNodes.jsp',  
                    baseAttrs: { uiProvider: Ext.tree.TreeCheckNodeUI }  
                }),  
                root: new Ext.tree.AsyncTreeNode({  
                    id:'0',text:'根结点'  
                })  
            });
 
我们都是固定写了id:'0',text:'根结点'   。如果是后台传来的根节点id,text,我该如何做成一个活动的id 和 text.

******************************************************************
谢谢各位!


这种情况,你可以让root 设为不可见,那从后台取到的结点,表面上看起来就是树的根结点了。
如果你还想让后台取到的根结点不可见,那只那先异步取得后台的根结点ID和TEXT,再来创建这棵树的根结点了。
0 请登录后投票
   发表时间:2008-06-09  
有个问题请教
怎么在开始遍历的时候判断有的字段展开
0 请登录后投票
   发表时间:2008-06-09  
我说的有的字段指的是 checked 属性为true
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics