浏览 180 次
|
该帖已经被评为新手帖
|
|
|---|---|
| 作者 | 正文 |
|
时间:2008-07-30 关键字: ext 动态分栏树
在制作ext动态分栏的时候遇到了问题。下面将按代码执行的顺序展示一下:
home.js里left包含动态分栏的代码: Ext.onReady(function(){ nav(); var left=new Ext.Panel({ title:"菜单", width:200, region:"west", collapsible:true, collapseMode:'mini', split:true, margins : '0 0 5 5', cmargins : '0 0 0 0', minSize : 100, maxSize : 400, defaults:{autoScroll:true}, // tbar:[{text:"Login",handler:change}], layout:'accordion', layoutConfig: { titleCollapse:true, animate:true }, autoLoad : sort }); function nav() { loader = new Ext.tree.TreeLoader({ url : basePath + '/navigate' }); loader.on('beforeload', function(treeloader, node) { treeloader.baseParams = { id : node.id }; }, this); sort = {url:basePath + '/sort'}; } 由autoLoad进后台,取表中分栏的id、title属性有后台返回list,代码如下:SortServlet.java中的方法 public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { NavigateManager navigateManager = new NavigateManager(); request.setAttribute("list", navigateManager.getSortId()); RequestDispatcher dispatcher = request.getRequestDispatcher("/layout/SortJson.jsp"); dispatcher.forward(request, response); } 再在SortJson.jsp中循环,组成代码,SortJson.jsp中代码: <c:set var="len" value="${fn:length(list)-1}"></c:set> items:[ <c:forEach items="${list}" var="obj" varStatus="i"> {id:'$obj.id', title:'${obj.title}', items:[new Ext.tree.TreePanel({ id:'{$obj.id}', antoScroll:true, animate:true, containerScroll:true, border:false, height:350, rootVisible:false, root:new Ext.tree.AsyncTreeNode({id:'${obj.id}'}), loader:loader }) ]} <c:if test="${i.index<len}">,</c:if> </c:forEach> ] 这样就完成了,我本以为返回值已经够实现动代分栏的条件了,可是运行后界面确直接返回了文本见下图:图片上传不好使,直接说效果吧,下面的代码直接显示在left的panel区域里了。 items:[ {id:'$obj.id', title:'系统管理', items:[new Ext.tree.TreePanel ({ id:'{$obj.id}', antoScroll:true, animate:true, containerScroll:true, border:false, height:350, rootVisible:false, root:new Ext.tree.AsyncTreeNode({id:'1'}), loader:loader }) ]} , {id:'$obj.id', title:'菜单管理', items:[new Ext.tree.TreePanel({ id:'{$obj.id}', antoScroll:true, animate:true, containerScroll:true, border:false, height:350, rootVisible:false, root:new Ext.tree.AsyncTreeNode ({id:'6'}), loader:loader }) ]} ] 将这些代码复制到home.js中可以显示分栏。 后来别人说将返回数据转换一下,用ext.decode();但是我不知道如何将返回值获取到。 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
时间:2008-08-07
问题解决,截贴,谢谢大家
|
|
| 返回顶楼 | |


