var StaticComboBox = Ext.define('MyApp.view.ComboBoxType', {
extend: 'Ext.form.ComboBox',
mode: 'local',
fieldLabel: 'Type',
labelWidth: 50,
triggerAction: 'all',
editable: false,
valueField: 'value',
displayField: 'label',
data: [
{value: 0, label: 'By Vehicle'}, {value: 1, label: 'By Route'}
] ,
initComponent: function() {
this.store = new Ext.data.Store({
fields: ['value', 'label'],
data: this.data
});
StaticComboBox.superclass.initComponent.call(this);
},
listeners: {
change: function (combo, value) {
var grid = Ext.ComponentQuery.query('dailywindow gridpanel[name=mydailychartgrid]')[0];
if (grid != null){
if (value == 0) {
//grid.reconfigure(VehicleStore_Chart,VehicleModel)
grid.reconfigure(VehicleStore_Chart);
grid.columns[1].setText('Plat No');
grid.columns[1].dataIndex = "Plat_No"
grid.columns[1].width = 100
}else{
//grid.reconfigure(RouteNameStore_DailyChart,RouteModel)
grid.reconfigure(RouteNameStore_DailyChart)
grid.columns[1].setText('Route Code');
grid.columns[1].dataIndex = "Route_Code"
grid.columns[1].width = 100
}
}
//alert(value);
}
}
});
var c = new StaticComboBox();
c.setValue(0);
如何在不使用组合框中的确定ID的情况下获得组合框值?
Ext.getCmp("ComboBoxType").getValue()
不起作用。
答案 0 :(得分:1)
如果您不想使用ID,请改用itemId
。
var val = Ext.ComponentQuery.query('ComboBoxType#yourItemId')[0].getValue();
itemId
的优势在于它们不需要是唯一的。
答案 1 :(得分:0)
是的,您应该将'id'
属性添加到组合框,然后使用'Ext.getCmp('componentId')'
或
为其分配'name'
属性并使用componentquery
。