我有一个组合框,其中几个静态(硬编码)值显示在网格内。
默认情况下,它应该显示组合框中的第一个值。我尝试了一些东西,但它不起作用。 我先创建StaticComboBox,然后再创建
var StaticComboBox = Ext.extend(Ext.form.ComboBox, {
mode: 'local',
triggerAction: 'all',
editable: false,
valueField: 'value',
displayField: 'label',
data: [],
initComponent: function() {
this.store = new Ext.data.ArrayStore({
fields: ['value', 'label'],
data: this.data
});
StaticComboBox.superclass.initComponent.call(this);
}
});
var cm = new Ext.grid.ColumnModel([
{
id:'language',
header: "Language",
dataIndex: 'language',
width: 235,
menuDisabled: true,
editor: new StaticComboBox({
name: 'Reasons',
data: [
[0, 'Reason 1'],
[1, 'Second Reason'],
[2, 'Something else']
]
}),
listeners: {
load: function () {
//set the ComboBox value here
var combo = Ext.getCmp('language');
combo.setValue("1");
}
}
}
]);
答案 0 :(得分:0)
由于您的商店已经填满,因此您不太可能获得加载事件。 尝试听渲染或其他东西。
以下是一个工作示例:http://jsfiddle.net/4baem/3/
使用Ext.data.Store,然后您的数据必须是一个记录数组:
new StaticComboBox({
name: 'Reasons',
data: [{value: 0, label: 'reason1'}, {value: 1, label: 'reason2'}]
});