ExtJs 4 - Window.show() - 窗口大小非常小

ExtJs 4 - Window.show() - window size is very small

本文关键字:窗口大小 非常 show Window ExtJs      更新时间:2023-09-26

我正在处理 ExtJs 4,并且在网格上的双击事件时显示模态窗口时遇到问题。

在网格组件上定义的侦听器:

"listeners": {
    "itemdblclick": function() { 
        var win =Ext.getCmp('myCmp');
        win.myWindow.show(); 
    }
}

先前将 myCmp 的属性定义为窗口组件:(我使用了父容器对象myCmp,因为我正在生成javascript的代码来构建ExtJs配置)

myCmp.myWindow = Ext.create('Ext.window.Window',{
"layout": "fit",
"items": [
 ....     
],
"title": "Hello Window",
"width": "300",
"height": "300",
"id": "myWindow"
});

逻辑效果很好,我双击网格,窗口对象存在(myCmp.myWindow),但是当我调用show()时,窗口显示得非常小(6px x 6px)。

如果我将处理程序更改为:

Ext.create('Ext.window.Window',{
"layout": "fit",
"items": [
 ....     
],
"title": "Hello Window",
"width": "300",
"height": "300",
"id": "myWindow"
}).show();

它工作正常。 显然,这是在创建一个新的窗口实例。

有什么想法吗? 我这样做对吗?

提前致谢

山 姆

当你可以直接引用你的窗口时,为什么你提到"myCmp"?

 var win = Ext.getCmp('myWindow');
 win.show();

这应该有效。另外,为什么要在其他地方实例化窗口然后使用它?在需要时创建一个实例并在使用后销毁它不是更好吗?

此外,您应该正确配置窗口。宽度和高度是数值字段,而不是字符串。请参阅 api 文档和示例,了解如何正确配置对象。您应该使用以下窗口:

Ext.create('Ext.window.Window',{
    layout: 'fit',
    items: [
     ....     
    ],
    title: 'Hello Window',
    width: 300,
    height: 300,
    id: 'myWindow'
}).show();