我创建并显示像这样的窗口:问题创建和显示不止一次窗口
var w = Ext.widget('EditPortalUserWindow');
w.show();
在视图中,这是怎样的窗口及其子组件的定义:
Ext.define('Customer_Portal_UI.view.MainContent.EditPortalUserWindow', {
alias: 'widget.EditPortalUserWindow',
extend: 'Ext.Window',
height: 400,
width: 500,
modal: true,
resizable: false,
items: [
{
xtype: 'form',
frame: false,
bodyStyle: 'background-color:white;border-width: 0px;',
itemId: 'EditPortalUserForm',
trackResetOnLoad: true,
url: GlobalVars.portalUserPostApiUrl,
method: 'POST',
items: [
{
xtype: 'tabpanel',
items: [
{
xtype: 'panel',
itemId: 'GeneralInfoFieldsetPanel',
title: 'General',
items: [Ext.widget('GeneralInfoFieldset')]
},
{
xtype: 'panel',
itemId: 'UserRolesGridPanel',
title: 'Portal roles',
items: [Ext.widget('UserRolesGridFieldSet')]
}
]
}
]
}
]
});
Ext.define('Customer_Portal_UI.view.MainContent.GeneralInfoFieldset', {
extend: 'Ext.form.FieldSet',
alias: 'widget.GeneralInfoFieldset',
columnWidth: 0.5,
style: 'padding: 20px;',
bodyStyle: 'border-width: 0px;background-color:white;',
defaults: {
anchor: '100%'
},
items: [
{
xtype: 'textfield',
fieldLabel: 'User ID',
name: 'UserID'
},
{
xtype: 'textfield',
fieldLabel: 'Username',
name: 'UserName'
},
{
xtype: 'textfield',
fieldLabel: 'Password',
name: 'password'
},
{
xtype: 'textfield',
fieldLabel: 'Confirm password',
name: 'confirmPassword'
},
{
xtype: 'textfield',
fieldLabel: 'Full name',
name: 'FullName'
},
{
xtype: 'textfield',
fieldLabel: 'Email Address',
name: 'EmailAddress'
}
]
});
Ext.define('Customer_Portal_UI.view.MainContent.PortalUser.AvailRolesGrid', {
alias: 'widget.AvailRolesGrid',
itemId: 'AvailRolesGrid',
title: 'Available roles',
extend: 'Ext.grid.Panel',
width: 150,
height: 150,
hideHeaders: true,
store: 'portalRoleStore',
columns: [
{ dataIndex: 'RoleDisplayName', flex: 1 }
]
});
Ext.define('SelectedRolesGrid', {
alias: 'widget.SelectedRolesGrid',
itemId: 'SelectedRolesGrid',
title: 'Selected roles',
extend: 'Ext.grid.Panel',
width: 150,
height: 150,
hideHeaders: true,
store: 'selectedPortalRoleStore',
columns: [
{ dataIndex: 'RoleDisplayName', flex: 1 }
]
});
Ext.define('Customer_Portal_UI.view.MainContent.UserRolesGridFieldSet', {
extend: 'Ext.form.FieldSet',
alias: 'widget.UserRolesGridFieldSet',
layout: 'hbox',
items: [Ext.widget('SelectedRolesGrid'), Ext.widget('AvailRolesGrid')]
});
第一次创建并显示窗口,但第二次,我为窗口的tabpanel中创建的每个选项卡收到两个不同的错误。
如果我将它们注释掉(很明显,该窗口不包含任何内容),我不会收到错误信息,而且我会按照自己的意愿打开和关闭窗口而不会出错。
你们是否看到有关我如何创建窗口及其组件的任何明显的误用或明显的错误?
所有Ext.define
调用都在关联视图的initComponent()
方法内完成。
该窗口的默认关闭动作是destroy
所以我想知道是否没有正确重新创建标签,即使我会这样想,因为当我创建窗口时,我要求重新创建所有内容。
谢谢。