EXTJS 4:如何在不确定组合框ID的情况下获得组合框值

时间:2014-04-09 19:17:46

标签: extjs

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()不起作用。

2 个答案:

答案 0 :(得分:1)

如果您不想使用ID,请改用itemId

var val = Ext.ComponentQuery.query('ComboBoxType#yourItemId')[0].getValue();

itemId的优势在于它们不需要是唯一的。

答案 1 :(得分:0)

是的,您应该将'id'属性添加到组合框,然后使用'Ext.getCmp('componentId')'

为其分配'name'属性并使用componentquery