如何在 extJS 的面板中打开网格?

Posted

技术标签:

【中文标题】如何在 extJS 的面板中打开网格?【英文标题】:How can I open a grid in a panel in extJS? 【发布时间】:2013-12-06 23:08:24 【问题描述】:

我想在Ext.Panel 中打开一个网格。这是我尝试过的-

Var grid = Ext.create('Ext.grid.Panel', 
store: Ext.data.StoreManager.lookup('StoreId'),
columns: [
     header: 'Resort', dataIndex: 'resort' ,
     header: 'Arrival', dataIndex: 'arrival' ,
     header: 'Guest', dataIndex: 'guest', flex: 1 
]
renderTo: Ext.getBody()
);

Var panel = new Ext.Panel(
title: 'Accompanying Guest(s)',  
id: 'panel',    
items: [grid]
);

我想在一个窗口中打开这个面板-

var win = new Ext.Window(
                    layout: 'fit',
                    width: 900,
                    height: 600,
                    closeAction: 'hide',
                    plain: true,
                    items: [panel]
                );

我的代码有什么问题?

【问题讨论】:

【参考方案1】:
var win = new Ext.Window(
    autoShow: true,
    layout: 'fit',
    width: 900,
    height: 600,
    closeAction: 'hide',
    plain: true,
    items: [
        xtype: 'gridpanel',
        title: 'Accompanying Guest(s)',
        store: Ext.data.StoreManager.lookup('StoreId'),
        columns: [
            header: 'Resort',
            dataIndex: 'resort'
        , 
            header: 'Arrival',
            dataIndex: 'arrival'
        , 
            header: 'Guest',
            dataIndex: 'guest',
            flex: 1
        ]
    ]
);

我从哪里开始...

    如果要将项目放入容器中,请不要使用 renderTo。 您为面板提供了一个带有中心区域的边框布局。 边框布局不是必需的,使用 fit 即可。 您已在网格上声明了尺寸,但它们将由 fit 布局提供。 过度嵌套。网格〜是一个〜面板,没有必要将它嵌套在另一个面板中。将标题放在网格面板本身上。

【讨论】:

这些不能解决我的问题! 更新了 OP,因为您似乎只是挑选了您想要遵循的我的建议。 @EvanTrimboli - 实际上 gridpanelwin 在 3 个不同的 JS 中。所以我应该需要按照我提出问题的方式进行操作。 好的,忽略#5,其余的还是一样的。 @EvanTrimboli 嘿,埃文,panel 有问题。我尝试将另一个 ext.panel 添加为 items of panel。它没有加载。 items 为空时很好。为什么会这样?

以上是关于如何在 extJS 的面板中打开网格?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ExtJS 4 网格面板中保留垂直滚动条?

如何在 extjs 4 中选择网格面板行作为 HTMLELEMENT

如何避免滚动条空间而不出现在 extjs 网格面板中?

Extjs 4.1 - 如何在网格面板中显示 html 数据

如何在 ExtJS3.4 的网格面板中添加复选框列

如何在 extjs 3.4 网格面板中显示/隐藏列