精华帖 (6) :: 良好帖 (18) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-07-01
aiwobucuo 写道 我要用它来做菜单权限。发现这个要生成符合这个树的JSON数据好难生成。你们做的是固定写死了吗? 还是有什么好方法生成。指教一下。谢谢 了。
如果用异步的,那一次只生成一组JSON数据,是很方便的,如: [{id:1,text:'a1',leaf:true},{id:2,text:'a2',leaf:true},...] |
|
返回顶楼 | |
发表时间:2008-07-01
jerrygyp 写道 怎么取树中所有值,包括没有展开的值
那只能去后台取了,因为没有展开,前台就没有结点 |
|
返回顶楼 | |
发表时间:2008-07-01
Victorn 写道 1、可否动态更改TreePanel中的属性呢?例如我想在HTML页面有一个input,当想更改树的高度时就输入一个值,然后Tree的高度效果是随之改变。请问该如何做?
2、请教,如果我使用 checkModel:'multiple',这时想添加一个function,功能是实现选择该节点的所有父节点或者所有孩子节点,该如何写呢? 1.你试下EXT提供的几个API,如 setHeight( Number height )/setSize( Number/Object width, Number height ) 2.其实级联分三种情况: 情况一:所有父节点和子节点都选上(如本程序) 情况二:所有父节点选上,子节点不选 情况三:所有父节点不选,子节点选上 要实现情况二和情况三,可以相应改下程序,增加checkModel的种类, 如 checkModel:'parentCascade'和checkModel:'childCascade',然后在程序里增加IF判断就行了: if(!this.onlyLeafCheckable){ if(this.checkModel == 'cascade' || this.checkModel == 'parentCascade'){ var parentNode = n.parentNode; if(parentNode !== null) { this.parentCheck(parentNode,checked); } } if(this.checkModel == 'cascade' || this.checkModel == 'childCascade'){ if( !n.expanded && !n.childrenRendered ) { n.expand(false,false,this.childCheck); }else { this.childCheck(n); } } } else if(this.checkModel == 'single'){ var checkedNodes = tree.getChecked(); for(var i=0;i<checkedNodes.length;i++){ var node = checkedNodes[i]; if(node.id != n.id){ node.getUI().checkbox.checked = false; node.attributes.checked = false; tree.fireEvent('check', node, false); } } } |
|
返回顶楼 | |
发表时间:2008-07-01
c_mingze@163.com 写道 在特定的情况 我的树 只允许浏览 而不能操作 也就是希望吧选框去掉,
那么能不能加个属性当是1的时候可带选框 是0的时候不带选框。 ext本身自带checked属性来实现结点是否有checkbox,如果后台返回JSON数据中结点含有checked属性,就有checkbox,否则无。 但这个对于级联多选来说增加额外的判断,所以就把这一特性去掉了,如果有必要,可以加上,但在CHECK操作时,要增加判断,还是挺麻烦的。 |
|
返回顶楼 | |
发表时间:2008-07-03
很有意义,提个建议,能不能在主贴把代码打包放上来,用颜色表示更新日期就行了,这样大家下载资料方便点,可以一起研究讨论。
|
|
返回顶楼 | |
发表时间:2008-07-03
刚做了点修改,双击的时候不会 收起子节点了 感觉舒服点
数据采用本地js的,方便大家看效果。 ps:ext-2.0是空的 自己放进去 (要不文件太大了) |
|
返回顶楼 | |
发表时间:2008-07-08
我的还是加载不上去,这个控件整个都加不上去,不显示:(
返回数据:{"id":1,"text":"用户1","children":[{"id":2,"text":"角色1","leaf":true},{"id":3,"text":"角色2","leaf":true} ]} js代码:var treeTest = new Ext.tree.TreePanel({ // applyTo:'tree-ct', width:638, onlyLeafCheckable: true, animate: false, rootVisible: false, autoScroll:true, loader: new Ext.tree.TreeLoader({ dataUrl:'../getUsers.do', baseAttrs: { uiProvider: Ext.tree.TreeCheckNodeUI } }), root: new Ext.tree.AsyncTreeNode({ id:'0',text:'根结点' }) }); //tree.getEl().center(); treeTest.getRootNode().expand(); 是怎么回事呢?是哪里设置不正确吗? |
|
返回顶楼 | |
发表时间:2008-07-08
buaabyy 写道 我的还是加载不上去,这个控件整个都加不上去,不显示:(
返回数据:{"id":1,"text":"用户1","children":[{"id":2,"text":"角色1","leaf":true},{"id":3,"text":"角色2","leaf":true} ]} .... 你返回的JSON数据不对,应该是: [{"id":1,"text":"用户1","children":[{"id":2,"text":"角色1","leaf":true},{"id":3,"text":"角色2","leaf":true}]}] 整体加上[] |
|
返回顶楼 | |
发表时间:2008-07-15
请问各位,我的代码如下,树能从数据库里读出并显示
但是为什么还是看不到checkbox选择框? <%@ page language="java" contentType="text/html; charset=GB2312" %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Customizing TreePanel</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <link rel="stylesheet" type="text/css" href="./scripts/ext/resources/css/ext-all.css"> <script type="text/javascript" src="./scripts/ext/adapter/ext/ext-base.js"></script> <script type="text/javascript" src="./scripts/ext/ext-all.js"></script> <script type="text/javascript" src="./scripts/demo/TreeCheckNodeUI.js"></script> <script> var imagePath = './scripts/image'; //Ext.BLANK_IMAGE_URL = imagePath+'/menu-show.gif'; Ext.onReady(function(){ 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:'yonghuzuquanxiandata.jsp', baseAttrs: { uiProvider: Ext.ux.TreeCheckNodeUI } }), root: new Ext.tree.AsyncTreeNode({ id:'0',text:'根结点' }) }); tree.getEl().center(); tree.getRootNode().expand(); }); </script> </head> <body> <div id="tree-ct"> </body> </html> |
|
返回顶楼 | |
发表时间:2008-07-17
你看下./scripts/demo/TreeCheckNodeUI.js 文件里,是Ext.ux.TreeCheckNodeUI,还是Ext.tree.TreeCheckNodeUI
以前使用的是Ext.tree.TreeCheckNodeUI,最近更新了一下,统一换为Ext.ux.TreeCheckNodeUI |
|
返回顶楼 | |