ExtJS在弹出窗口中使用Combobox

时间:2015-06-22 12:02:09

标签: forms extjs combobox popup window

我正在尝试将组合框添加到ExtJS中的浮动(弹出)表单面板中。但我得到一个“无法设置属性'组件'的错误”错误,窗口将无法加载。

我在控制器中使用以下代码来创建窗口:

onTreeAddDocClick: function () {
    var f = new Ext.form.Panel({
        frame: false,
        header: false,
        floating: true,
        closable: true,
        items: [{
            xtype: 'addDoc'
        }]
    });
    f.show();
}

窗口本身的代码如下:

Ext.define('OPENhrm.view.dossier.widget.popup.AddDoc', {
extend: 'Ext.form.Panel',
xtype: 'addDoc',

requires: [
    'Ext.layout.container.VBox'
],

controller: "dossier-addDoc",

viewModel: {
    type: "dossier-addDoc"
},

id: 'addDocForm',

frame: true,
title: 'Add document',
width: 400,
bodyPadding: '10 10 0',
layout: 'form',
closable: true,

defaults: {
    anchor: '100%',
    allowBlank: false,
    msgTarget: 'side',
    labelWidth: 50
},

items: [{
    // item selector 
    xtype: 'filefield',
    emptyText: 'Select Document',
    fieldLabel: 'Document',
    name: 'filePath',
    id: 'filePath',
    buttonText: 'upload document',

    buttonConfig: {
        icon : '/resources/images/icons/add.jpg'
    }
}, {
    xtype: 'combo',
    fieldLabel: 'Test',
    hiddenName: 'test',
    store: new Ext.data.SimpleStore({
        data: [
            ['Test1'],
            ['Test2']
        ],
        id: 0,
        fields: ['text']
    }),
    valueField: 'text',
    displayField: 'text',
    triggerAction: 'all',
    editable: false
}],

// buttons
buttons: [{
    text: 'Add',
    handler: 'onAddDockClick'
}, {
    text: 'Reset',
    handler: function () {
        this.up('form').getForm().reset();
    }
}]
});

如果我取下组合框,窗口就可以了。如果我将组合框放在应用程序中的其他位置(例如,在包含2个面板的页面上;搜索过滤器/表单和带有搜索结果的网格),它就可以正常工作。然而,该其他页面不是浮动/弹出窗口。

我通过在控制器中定义整个页面来实现它,但是当我使用MVC结构时,这似乎不太可能。有没有人知道如何让组合框在浮动窗口中工作,而不将该窗口的整个代码放在控制器中?

0 个答案:

没有答案