论坛首页 入门讨论版 EXT

制作动态分栏树遇到的问题!

浏览 254 次
该帖已经被评为新手帖
作者 正文
时间: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();但是我不知道如何将返回值获取到。
   
时间:2008-08-07
问题解决,截贴,谢谢大家
   
0 请登录后投票
时间:2008-08-28
如何解决啊,请说下
   
0 请登录后投票
论坛首页 入门讨论版 EXT

跳转论坛:
JavaEye推荐