我有一个编辑器网格面板,有2个字段。基于第一个字段,第二个字段应更改为具有更多选项的组合框。为此,需要在运行时获取第1个字段的值才能触发第二个字段的查询。 代码工作正常并重新获取数据。但即使第二个字段的宽度为350,出现的组合框也很小,无法读取。甚至没有看到下降。我也尝试了ListWidth属性..但输出没有变化。
是不是因为,最初组合框是空的,我正在使用beforequery属性来更改带有id字段的url,这样组合框没有得到数据?但我看不到萤火虫上的任何错误。
我有以下代码:
createGrid= function(e){
var store= new Ext.data.Store({
autoLoad: true,
proxy: new Ext.data.HttpProxy({ url: ..... }) //url to get the data
reader: new Ext.data.JsonReader({
root: //the root,
id: //id,
sortInfo: {field: 'id', direction: 'ascending' },
fields: ['id','fields']
})
});
var store2= new Ext.data.store ({
autoLoad: true,
id: 'store2',
proxy: new Ext.data.HttpProxy({ url: ' '}) //url
reader: new Ect.data.JsonReader({
root: 'enums','id', fields: ['enum_id','value']
})
});
var cm=new ext.grid.columnModel([
{id:'id',name:'id',dataIndex: 'id', width: 300},
{id:'fields', header: 'fields',width: 350, editor: new Ext.form.ComboBox({
name: 'combo',
store: store2,
width: 350,
valueField: 'enum_id',
displayField: 'value',
listeners: {
beforequery: function(query){
var g_n=Ext.getCmp('grid1');
var s_t=g_n.getSelectionModel().getSelections();
var record=s_t[0];
var assign_data=record.get('id');
var actionStore=Ext.StoreMgr.get('store2');
var action_combobox=Ext.getCmp('combo1');
actionStore.proxy.conn.url=' ',//new url which requires the 'id' field
actionStore.load();
return query;
}
}
})},
]);
return new Ext.grid.EditorGridPanel({
id: 'grid1',
store: store,
cm:cm,
sm: new Ext.grid.RowSelectionModel ({ singleSelect: true});
autoExpandableColumn: 'fields',
listeners: {
//the other grid listeners
}
})
}
请帮我解决这个问题。 提前谢谢。
答案 0 :(得分:0)
var store2 = new Ext.data.store(
也许您需要将Ext.data.store
替换为Ext.data.Store
或Ext.data.JsonStore