Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在ExtJS 4.0.5中动态更改配置选项(minWidth)?_Javascript_Extjs_Extjs4_Single Page Application - Fatal编程技术网

Javascript 如何在ExtJS 4.0.5中动态更改配置选项(minWidth)?

Javascript 如何在ExtJS 4.0.5中动态更改配置选项(minWidth)?,javascript,extjs,extjs4,single-page-application,Javascript,Extjs,Extjs4,Single Page Application,我有一个Ext.window.window组件,在配置选项中设置了minHeight和minWidth,如下所示: config: { minWidth: 860, minHeight: 580 }, 现在我想在函数中更改这些属性,如下所示: Ext.getCmp('x').setMinWidth(1280); 但是这个Setter在extjs4.0.5中还不存在。(在以后的版本中确实如此) 我也试过这样做: Ext.getCmp('x')

我有一个Ext.window.window组件,在配置选项中设置了minHeight和minWidth,如下所示:

config: {
         minWidth: 860,
         minHeight: 580
        },
现在我想在函数中更改这些属性,如下所示:

Ext.getCmp('x').setMinWidth(1280);
但是这个Setter在extjs4.0.5中还不存在。(在以后的版本中确实如此)

我也试过这样做:

Ext.getCmp('x').config.minWidth = 1280;
但它也不起作用

提前谢谢

在ExtJS中,您可以在更改配置值后使用
updateLayout
方法

updateLayout更新此组件的布局。如果此更新影响此组件的所有者,则将调用该组件的updateLayout方法来执行布局。否则,仅此组件(及其子项)将显示布局

在这里,我已经创建和演示。它将显示如何工作,希望这将帮助您解决您的问题或实现您的要求

Ext.create('Ext.window.Window', {
    title: 'Hello',
    minWidth: 400,
    minHeight: 300,
    layout: 'vbox',
    items: [{ // Let's put an empty grid in just to illustrate fit layout
        xtype: 'grid',
        flex: 1,
        width: '100%',
        border: false,
        store: {
            fields: ['name', 'email', 'phone'],
            data: {
                'items': [{
                    'name': 'Lisa',
                    "email": "lisa@simpsons.com",
                    "phone": "555-111-1224"
                }, {
                    'name': 'Bart',
                    "email": "bart@simpsons.com",
                    "phone": "555-222-1234"
                }, {
                    'name': 'Homer',
                    "email": "home@simpsons.com",
                    "phone": "555-222-1244"
                }, {
                    'name': 'Marge',
                    "email": "marge@simpsons.com",
                    "phone": "555-222-1254"
                }]
            },
            proxy: {
                type: 'memory',
                reader: {
                    type: 'json',
                    root: 'items'
                }
            }
        },
        columns: [{
            text: 'Name',
            dataIndex: 'name'
        }, {
            text: 'Email',
            dataIndex: 'email',
            flex: 1
        }, {
            text: 'Phone',
            dataIndex: 'phone'
        }],
    }, {
        xtype:'button',
        text: 'Update min height and width with Random Number',
        height: 40,
        margin: 10,
        width:'100%',
        renderTo: Ext.getBody(),
        handler: function () {
            /**
             * Returns a random integer between min (inclusive) and max (inclusive)
             * Using Math.round() will give you a non-uniform distribution!
             */
            function getRandomInt(min, max) {
                return Math.floor(Math.random() * (max - min + 1)) + min;
            }

            var num = getRandomInt(300, 600),
                wind = this.up('window');
            wind.minHeight = num;
            wind.minWidth = num;
            wind.updateLayout();
        }
    }]
}).show();

创造一些sencha小提琴的乐趣这似乎奏效了。调整窗口大小仅限于新的minWidth和minHeight尺寸,但是“调整大小预览”(按住窗口边框并向内拖动时看到的虚线)仍然允许您拖动,直到旧的“min”尺寸。不过,当释放鼠标左键时,窗口大小会捕捉到新的“最小”尺寸。如果我不能很清楚地解释这个问题,我很抱歉。这是一个相当大的项目,所以我很难把它分解成一把小提琴。我刚刚检查过,它也发生在你的sencha小提琴上。在增加minWidth或minHeight后,调整大小预览仍然允许您进一步拖动。抱歉,实际上我没有理解您的意思。我指的是这条蓝色虚线,指示您调整大小的距离。它超出了实际的最小宽度/最小高度。(精确到原来的minWidth/minHeight)好的,我需要查看更多详细信息,然后将向您更新