Extjs combobox 无法加载JSON数据

kylerho 发布于 2014/06/06 11:28
阅读 939
收藏 0

数据可以正常从后台返回数据{"code":"1","testresult":"[{\"id\":8,\"name\":\"ab\"},{\"id\":9,\"name\":\"cd\"}]"}

ExtJS代码:

var store = new Ext.data.JsonStore({
    autoDestroy : true,
    proxy : new Ext.data.HttpProxy({
        method : 'GET',
        prettyUrls : false,
        url : '/test!load.action'
    }),
    root : 'testresult',
    autoload:true,
    fields : ['id', 'name'],
});


new Ext.form.ComboBox({
        fieldLabel: '选择',
        store: store,
           displayField:'name',
           valueField:'id',
           typeAhead: true,
           mode: 'local',
           triggerAction: 'all',
           editable : false,
           width:175,
           emptyText:'请选择',
           selectOnFocus:true
       }),

ComboBox 的下拉就是没数据



加载中
0
len
len
mode: 'local',是指定加载本地数据吧。
0
len
len
给你一段我写过的。
{
                    id: "theme-switcher-label",
                    xtype: "combo",
                    width: 230,
                    labelWidth: 35,
                    fieldLabel: "站点",
                    displayField: "domain",
                    valueField: "id",
                    margin: "10 5 0 0",
                    store: Ext.create("Ext.data.Store", {
                        autoLoad: true, // 必须自动加载, 否则无在编辑的时候load
                        proxy: {
                            type: 'ajax',
                            url: config.server + 'site.json?method=list',
                            reader: {
                                type: 'json',
                                root: 'list'
                            }
                        },
                        fields: ['id', 'name', 'domain'],
                        listeners: {
                            load: function() {
                                var val = this.getAt(2).get('id');
                                config.siteId = val;
                                Ext.getCmp('theme-switcher-label').setValue(val);
                            }
                        }
                    }),
                    listeners: {
                        change: function(b, c, d) {
                            // console.log(b.getValue() + '/' + this.value + '/' + c + '/' + d);
                            if (d != null && d != c) {
                                Ext.Msg.confirm('温馨提示', '切换将关闭所有的工作区', function(btn) {
                                    if (btn == 'yes') {
                                        config.siteId = b.getValue();
                                        Ext.getCmp('content-panel').items.each(function(tab) {
                                            if (tab.closable) {
                                                tab.close();
                                            }
                                        });
                                        Ext.getCmp('mainMenu').getStore().reload();
                                    }
                                });
                            }
                            //location.href = location.href.replace("ext-theme-" + this.value, "ext-theme-" + b.getValue())
                        },
                        afterrender: function() {
                            // console.log('afterrender');
                        },
                        load: function() {
                            // console.log('load');
                        }
                    }
                }



返回顶部
顶部