extjs boder 布局

extjs boder 布局_第1张图片border布局是常见的布局样式,下面是一个实际项目的示例,比较简单,仅供初学者参考。



前两天遇到一个border布局的界面问题,如下:

west是一个tree a,center是一个tree b和一个Panel,如下图
界面要求:

点击左边树节点【培训项目】,打开右边的界面:包括一个树和一个panel。



功能要求:

点击右边树的节点,班型列表会根据树节点的ID进行查询,并显示相应的查询结果。



问题:

整个界面的右半部分怎样布局?



解决:

左边的tree就不用解释了,是哪里都能找到的样式。这里主要解释下右半部分的布局:

通常情况下,点击树节点,在布局的某个部分(常见的是center位置)打开一个界面的常用方式是:
contentEl : 'center1',   
html : '<iframe scrolling="auto" frameborder="0" width="100%"height="100%" src="classTypeNew.jsp"></iframe>'  


但这种方式不能在目前场景下使用,因为panel要能获得从tree b传递过来的参数,所以上面这种方式是不行的:classTypeNew.jsp无法获得tree b的节点ID。



建议采用如下方式:

1.整体采用border布局。tree a位于west,tree b和Panel位于center。

2.tree b和Panel采用border布局。tree b位于west,Panel位于center。

/**  
     * 班型管理部分  
     */  
    var _JwSales = new Ext.Panel({   
        region : 'center',   
        collapsible:true,                  
        items:[_gridStudyClassType,_panelStudyClassTypeInf,_panelStudyClassTypeNodes],   
           
        listeners:{   
            "show":function(){   
               
                _panelStudyClassTypeInf.getForm().reset();   
                   
                _sessionStore.load();   
           
                var _record = _sessionStore.getAt(0);   
                   
                Ext.getCmp("iStudyClassTypeOprUserName").setValue(_record.get("userName"));   
                Ext.getCmp("iStudyClassTypeOprUserId").setValue(_record.get("userId"));   
            }   
        },   
           
        buttons:[   
            {   
                text:"保存",   
                   
                listeners:{   
                    "click":function(){   
                       
                        var stId = Ext.getCmp("iStudyClassTypeStId").getValue();   
                       
                        if(_panelStudyClassTypeInf.getForm().isValid())   
                        {   
                            var arrayInfKey = getArrayStudyClassTypeKey();   
                               
                            var arrayInfValue = getArrayStudyClassTypeValue();   
                               
                            var arrayNodesKey = getStudyTypeNodesKey();   
                               
                            var arrayNodesValue = getStudyTypeNodesValue();                            
                                                           
                            if(stId == "")   
                            {   
                                //添加   
                                   
                                MSClassType.isDo4Add(Ext.getCmp("iItemCombo").getValue(),   
                                                        "stName",   
                                                            Ext.getCmp("iStudyClassTypeStName").getValue(),   
                                    function addRtn(rtn)   
                                    {   
                                        if(rtn == "true")   
                                        {   
                                            MSClassType.createEntity(   
                                                arrayInfKey,arrayInfValue,   
                                                arrayNodesKey,arrayNodesValue,   
                                                   
                                                function createEntityRtn(rtnCreate){   
                                       
                                                    if(rtnCreate == "success")   
                                                    {   
                                                        Ext.MessageBox.alert("信息提示","添加成功,点击返回!");   
                                                   
                                                        _storeStudyClassType.load({params:{start:0,limit:6}});   
                                                           
                                                        Ext.MessageBox.alert("信息提示","添加成功,点击返回!");   
                                                           
                                                        addHandler();   
                                                    }   
                                                    else  
                                                    {   
                                                        Ext.MessageBox.alert("信息提示","添加失败,请与系统管理员联系!");   
                                                    }   
                                                }   
                                            );   
                                        }   
                                        else  
                                            Ext.getCmp("iStudyClassTypeStName").markInvalid("已经存在的班型名称");   
                                    }   
                                );   
                            }   
                            else  
                            {   
                                if(Ext.getCmp("iStudyClassTypeStatus").getValue() != "1")   
                                {   
                                    Ext.MessageBox.alert("信息提示","已经提交或删除,无法修改!");   
                                       
                                    return ;   
                                }   
                                   
                                /*  
                                 * arrayTextbooksKey,arrayTextbooksValue,  
                                                arrayEmsKey,arrayEmsValue,  
                                                arrayGiftsKey,arrayGiftsValue,  
                                                arrayPsKey,arrayPsValue,  
                                 * */  
                                   
                                //修改   
                                MSClassType.isDo4Edit(Ext.getCmp("iItemCombo").getValue(),stId,   
                                                        "stName",   
                                                            Ext.getCmp("iStudyClassTypeStName").getValue(),   
                                    function editRtn(rtn)   
                                    {   
                                        if(rtn == "true")   
                                        {   
                                            MSClassType.updateEntity(   
                                                stId,arrayInfKey,arrayInfValue,   
                                                arrayNodesKey,arrayNodesValue,   
                                                   
                                                function updateEntityRtn(rtnUpdate){   
                                       
                                                    if(rtnUpdate == "success")   
                                                    {   
                                                        Ext.MessageBox.alert("信息提示","更新成功,点击返回!");   
                                                   
                                                        _storeStudyClassType.load({params:{start:0,limit:9}});   
                                                           
                                                        Ext.MessageBox.alert("信息提示","更新成功,点击返回!");   
                                                    }   
                                                    else  
                                                    {   
                                                        Ext.MessageBox.alert("信息提示","更新失败,请与系统管理员联系!");   
                                                    }   
                                                }   
                                            );   
                                        }   
                                        else  
                                            Ext.getCmp("iStudyClassTypeStName").markInvalid("已经存在的班型名称");   
                                    }   
                                );   
                            }   
                        }   
                    }   
                }   
            },   
            {   
                text:"提交",   
                handler:submitHandler   
            },   
            {   
                text:"清空",   
                handler:addHandler   
            }   
        ]   
    });   
  
  
var _treeItem = new Ext.tree.TreePanel({   
           
        title : '导航栏',   
        region : 'west',   
        split : true,   
        border : true,   
        bodyStyle: 'background-color:#FFFFFF',   
        collapsible : true,   
        autoScroll : true,   
        width : 180,   
        minSize : 180,   
        maxSize : 280,   
        enableDD : true,   
           
        el:"_treeItemDiv",   
        id:"_treeItem",   
        loader : new Ext.tree.TreeLoader({dataUrl :'itemData.jsp'}),   
           
        listeners:{   
            'dblclick':function(node,e){   
                var subjectID = node.attributes.id;//科目ID   
                alert("科目ID = "+ subjectID);   
                   
                _storeStudyClassType.removeAll();   
                _storeStudyClassType.load({params:{start:0,limit:20,subjectID:node.attributes.id}});   
            },   
               
            "contextmenu":function(node,e){   
                   
                if(node.attributes.id == "0")   
                {   
                    var nodemenu=new Ext.menu.Menu({   
                     
                    items:[   
                        {   
                            text:"添加项目",   
                            iconCls:'icon-table-add',   
                            handler:function(){   
                                   
                                _winBaseItemOpr.setTitle("项目管理-添加");   
                                _winBaseItemOpr.show();   
                                   
                                _panelBaseItemOpr.getForm().reset();           
                                   
                                Ext.getCmp("iStudyBaseItemSuperiorItemId").setValue(node.attributes.id);   
                                Ext.getCmp("iStudyBaseItemShowIndex").setValue(node.childNodes.length+1);    
                            }   
                        }   
                        ]   
                    });   
                   
                    nodemenu.showAt(e.getPoint());   
                }   
                else  
                {   
                    var nodemenu=new Ext.menu.Menu({   
                     
                    items:[   
                        {   
                            text:"删除项目",   
                            iconCls:'icon-minus',   
                            handler:function(){   
                                   
                                   
                            }   
                        },{   
                            text:"修改项目",   
                            iconCls:'icon-table-edit',   
                            handler:function(){   
                                   
                                _winBaseItemOpr.setTitle("项目管理-浏览");   
                                _winBaseItemOpr.show();   
                                   
                                _panelBaseItemOpr.getForm().reset();   
                                   
                                Ext.getCmp("iStudyBaseItemItemId").setValue(node.attributes.id);   
                                Ext.getCmp("iStudyBaseItemItemName").setValue(node.attributes.text);   
                                Ext.getCmp("iStudyBaseItemSuperiorItemId").setValue(node.attributes.superiorItemId);   
                                Ext.getCmp("iStudyBaseItemShowIndex").setValue(node.attributes.showIndex);   
                                Ext.getCmp("iStudyBaseItemInf").setValue(node.attributes.inf);   
                            }   
                        }]   
                    });   
                   
                    nodemenu.showAt(e.getPoint());   
                }   
            }   
        }   
    });   
  
    var _rootItem = new Ext.tree.AsyncTreeNode({text:"尚德教育在线",id:"0"});   
       
    _treeItem.setRootNode(_rootItem);      
       
    var _panelOrg = new Ext.form.FormPanel({   
        collapsible:true,   
        frame:true,   
        width:bodyWidth,   
        height:bodyHeight,   
        items:[_treeItem],   
        autoScroll:true  
    });   
  
    _panelOrg.render("_panelItemDiv");   
       
    _rootItem.reload();   
       
       
    /**  
     * 生成一个ViewPort,采用Border布局,保留天地栏,左中栏  
     */  
    var viewport = new Ext.Viewport({   
        layout : 'border',   
        items : [_treeItem, _JwSales]   
    });  

你可能感兴趣的:(jsp,教育,ext,项目管理)