而不是
hiding
您可以在中添加动态列
initComponent
方法。如果用户类型为
admin
然后添加到列中,否则不做任何操作。
在这
Fiddle
,我使用简单的登录创建了一个演示
window
和
grid
.
代码片段
Ext.application({
name: 'Fiddle',
launch: function () {
Ext.define('Vehiclelist', {
extend: 'Ext.grid.Panel',
xtype:'vehiclelist',
initComponent: function () {
let columns = [{
header: 'Vehicle Id',
dataIndex: 'vehicleId',
flex: 1
}, {
header: 'Vehicle No',
dataIndex: 'vehicleNo',
flex: 1
}];
if (this.isAdmin) {
columns.push({
header: 'Username',
dataIndex: 'username',
flex: 1
}, {
header: 'Password',
dataIndex: 'password',
flex: 1
});
}
Ext.apply(this, {
layout: 'fit',
columns: columns
});
this.callParent();
}
});
Ext.create('Ext.window.Window', {
title: 'Login',
width: 350,
layout: 'vbox',
closable: false,
draggable: false,
resizable: false,
bodyPadding: 10,
defaults: {
xtype: 'textfield',
labelAlign: 'top',
width: '100%'
},
items: [{
fieldLabel: 'Username'
}, {
fieldLabel: 'Password',
inputType: 'password'
}],
bbar: ['->', {
text: 'Login',
handler: function (btn) {
Ext.destroy(btn.up('window'));
Ext.create({
xtype:'vehiclelist',
title:'With username and password',
renderTo:Ext.getBody(),
isAdmin:true
});
Ext.create({
xtype:'vehiclelist',
margin:'20 0',
title:'Without username and password',
renderTo:Ext.getBody(),
isAdmin:false
});
}
}]
}).show();
}
});