是否应该在最后加上genres.load();?

解决方案 »

  1.   

    我写了autoLoad:true这个属性,应该就可以了吧。另外,我写错一个地方,就是那个Ext.data.SimpleStore应该改成Ext.data.JsonStore, 访问servlet时,后台能够打出来那个json对象,说明访问到了并且返回给前台一个json对象了,但是html页里combox里边是空的,不知道为什么
      

  2.   

    把 SimpleStore 换成  JsonStore ,
      

  3.   

    问题解决了,就是把那个SimpleStore或者JsonStore改为Store,如下,
                var genres = new Ext.data.Store({
                    ......
               });
    但是我就不明白,为什么是Store而不是JsonStore呢?
      

  4.   

    SimpleStore是载入数组数据的,无法解析json,因而SimpleStore会无效
    而JsonStore没有reader配置,对字段配置使用fields,所以你换成JsonStore会无效多看看API文档
      

  5.   


    一般来说,由Json数据获取store用JsonStore就可以了,只是你配置错了。JsonStore是Store扩展而来的,自然使用Store也可以看一下JsonStore的源码就知道了,其实很短
    Ext.data.JsonStore = function(c){
        /**
         * @cfg {Ext.data.DataReader} reader @hide
         */
        /**
         * @cfg {Ext.data.DataProxy} proxy @hide
         */
        Ext.data.JsonStore.superclass.constructor.call(this, Ext.apply(c, {
            proxy: c.proxy || (!c.data ? new Ext.data.HttpProxy({url: c.url}) : undefined),
            reader: new Ext.data.JsonReader(c, c.fields)
        }));
    };
    Ext.extend(Ext.data.JsonStore, Ext.data.Store);