日期:2014-05-16  浏览次数:20663 次

ext 树问题 - Web 开发 / Ajax
想写一个动态树,但是我怎么调用这个方法 就是不去访问我的servlet,非常奇怪 也不报错,servlet的路径应该也没问题。请问我这哪的代码是不是有问题?
JScript code
 this.createAssignDataPanel = function() {
                var formPanel = new Ext.form.FormPanel({
                            id : 'formPanelAssignData',
                            renderTo : 'viewWindow',
                            frame : true,
                            labelWidth : 70,
                            labelAlign : 'right',
                            layout : "anchor",
                            
                            items : [{
                                        xtype : "hidden",
                                        name : "role.id"
                                    },{
                                        id : "treePanel",
                                        xtype : 'treepanel',
                                        rootVisible : false,
                                        autoScroll : true,
                                        animate : false,
                                        enableDD : false,
                                        anchor:'0 0',
                                        containerScroll : true,
                                        root : new Ext.tree.AsyncTreeNode({
                                            id : "org_1",
                                            text : "全部通道",
                                            expand : true,
                                            loader : new Ext.tree.TreeLoader({
                                                url: 'roleRelaTreeCreateServlet?',
                                                preloadChildren:true,
                                                baseAttrs:{
                                                    uiProvider:Ext.tree.TriStateNodeUI
                                                },
                                                listeners : {
                                                'beforeload' : function(loader, node) {
                                                                    
                                                    if(node.attributes.type == 2){//前端设备
                                                        loader.url = "roleRelaTreeCreateServlet?";
                                                        loader.baseParams = {'role.id':this.grid.getSelectionModel().getSelected().get(this.primaryKey)};
                                                    }else{
                                                        loader.url = "roleRelaTreeCreateServlet?";
                                                        loader.baseParams = {'org.id': this.getNodeId(node),'role.id':1};
                                                    }
                                                },
                                                scope:this}
                                
                                            })
                                        })
                                    }]
                        });
                return formPanel;
            };


------解决方案--------------------
root 默认值使用为树定义的加载器
可以不为root设loader,但是tree的loader不能省
------解决方案--------------------
在servlet中直接输出就可以了,Ext会自动解析的!
------解决方案--------------------
CSS code

在servelt中用response.getWriter().print("{id:aaa,text:'te',leaf:true/false,children:...}");
这里的格式是固定的

------解决方案--------------------
把组合好的json输出到页面就行了
如4楼所示
其中输出的json字符串id和text属性不能少 其它属性按照需要增删