我试图在将其加载到商店后简单地在下拉列表中选择一个项目。这不起作用:
Ext.getCmp('ddlModel').setValue(aircraftStore.getAt(0).data.ModelTypeCode);
这会引发异常:
Ext.getCmp('ddlModel').selectByValue(aircraftStore.getAt(0).data.ModelTypeCode);
以下是例外情况: 'this.view'为null或不是对象
任何人都知道如何在ExtJs中执行此操作?
答案 0 :(得分:9)
我创建了一个函数来设置ExtJs中的组合框的值:
function ComboSetter(comboBox, value) {
var store = comboBox.store;
var valueField = comboBox.valueField;
var displayField = comboBox.displayField;
var recordNumber = store.findExact(valueField, value, 0);
if (recordNumber == -1)
return -1;
var displayValue = store.getAt(recordNumber).data[displayField];
comboBox.setValue(value);
comboBox.setRawValue(displayValue);
comboBox.selectedIndex = recordNumber;
return recordNumber;
}
答案 1 :(得分:2)
Ext.getCmp('ddlModel').select(aircraftStore.getAt(0));
答案 2 :(得分:0)
在许多情况下,您可能希望将组合框设置为某个索引。在ExtJs 4.2中你可以这样做:
function setIndex(combobox, value)
{
combobox.setValue(combobox.store.data.items[value].data.field1);
}
答案 3 :(得分:0)
在我的情况下,我需要得到组合框的id,然后在if中进行比较,从而能够通过第二个窗口,使用此方法并且它有效。
var ValorSeleccionado = Ext.getCmp('cmb_tipoderol_usr').getValue(); // 'cmb_tipoderol_usr' is the id of the combobox.
然后与行动进行比较
if (ValorSeleccionado == 1 ) { Do Action }
答案 4 :(得分:0)
我认为正确的方法是使用此属性配置组合框:
autoSelect: true
<块引用>
true 选择数据存储收集的第一个结果(默认值 为真)。错误值需要从 下拉列表设置组件值,除非值 (typeAheadDelay) 为真