开发者

Extjs combobox not displaying data

I have an editor grid panel, with 2 fields. Based on the 1st field, the second field should change to a combobox with further options. For that getting the value of the 1st field on runtime is required to fire the query for the second field. The code is working fine and retriving the data. But even when the mentioned width is 350 for the second field, the combobox which appears, is very small and can't be read. Even the dropdown is not seen. I tried the ListWidth property too.. but no change in the output.

Is it because, initially the combobox is empty and I'm using the beforequery property to change the url with the id field so the combobox is not getting the data? But I can't see any errors on firebug.

I have the following code:

createGrid= function(e){
    var store= new Ext.data.Store({
        autoLoad: true,
        proxy: new Ext.data.HttpProxy({ url: ..... }) //url to get the data
       开发者_如何学JAVA 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
        }
    })
}

Please help me with this problem. Thanks in advance.


 var store2 = new Ext.data.store(

Maybe you need to replace Ext.data.store with Ext.data.Store or Ext.data.JsonStore

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜