+ -
当前位置:首页 → 问答吧 → extjs tabpanel问题

extjs tabpanel问题

时间:2011-11-20

来源:互联网

JScript code
var dataBaseTree=new Ext.tree.TreePanel({
                title:"数据库管理",
                bodyStyle:"width:100%",
                rootVisible:false,
                collapsed:true,
                root:new Ext.tree.AsyncTreeNode({
                        expanded:true,
                        id:"dataBaseManage",
                        children:[
                            {
                                text:"表格",
                                id:"viewTables",
                                loader:new Ext.tree.TreeLoader({
                                        applyLoader:true,
                                        url:"../Handler/dataBase.ashx",
                                        baseParams:{
                                            action:"Table"
                                        }
                                    })
                            }
                        ]
                    })
            })
function dataBaseTreeHandle(node)
        {
            if(node.id=="viewTables")
            {
                return false
            }
            var totaltable=dataBaseTree.root.childNodes[0].childNodes.length
            var store=new Array(totaltable)
            var tGrid=new Array(totaltable)
            var tPanel=new Array(totaltable)
            if(!mainPanel.findById(node.text))
            {
                store[node.id]=new Ext.data.JsonStore({
                        autoDestroy:true,
                        url:"../Handler/dataBase.ashx",
                        baseParams:{
                            action:"Column",
                            tableName:node.text
                        },
                        root:"result",
                        fields:[
                            {
                                name:"Name"
                            },{
                                name:"Type"
                            },{
                                name:"Size",
                                type:"int"
                            },{
                                name:"Default"
                            }
                        ]
                    })
                store[node.id].load()
                tGrid[node.id]=new Ext.grid.EditorGridPanel({
                        id:node.text,
                        store:store[node.id],
                        columns:[
                            {
                                header:"列名",
                                dataIndex:"Name",
                                id:"Name"
                            },{
                                header:"类型",
                                dataIndex:"Type",
                                id:"Type",
                                renderer:function(v){
                                        var datatext
                                        switch(v)
                                        {
                                            case 0:
                                                datatext="空值"
                                                break;
                                            case 130:
                                                datatext="文本"
                                                break;
                                            case 2:
                                                datatext="数字"
                                                break;
                                            case 3:
                                                datatext="数字"
                                                break;
                                            case 7:
                                                datatext="日期/时间"
                                                break;
                                        }
                                    }
                            },{
                                header:"长度",
                                dataIndex:"Size",
                                id:"Size"
                            },{
                                header:"默认值",
                                dataIndex:"Default"
                            }
                        ]
                    })
                tPanel[node.id]=new Ext.Panel({
                        title:node.text,
                        closable:true,
                        id:node.text,
                        layout:"fit",
                        layoutOnTabChange:true,
                        items:[
                            tGrid[node.id]
                        ]
                    })
                mainPanel.add(tPanel[node.id]).show()
                mainPanel.doLayout();
            }
        }
dataBaseTree.on("click",dataBaseTreeHandle)



树的子节点从服务器端获取,现在遇到了这样的问题

当我同时打开两个tabpanel时,两个tabpanel的内容都没有了
开始以为是用了同一个变量导致的,就改成数组了,结果还是这样

跪求大神帮忙·····

作者: z1101385391   发布时间: 2011-11-20

csdn人呢?为什么问了几个问题都没人回答

作者: z1101385391   发布时间: 2011-11-20

同时打开两个tabpanel时,多半是因为2个panel 的id 相同导致的,要么panel的ID不同,要么出现ID相同,显示已经存在的

作者: wanghao198612   发布时间: 2011-11-20

已经解决
id:node.text这样不行
必须这样
id:node.text+"table"

估计是extjs的bug?

作者: z1101385391   发布时间: 2011-11-20

相关阅读 更多