+ -
当前位置:首页 → 问答吧 → EXT HttpProxy和ArrayReader配合无法成功装载数据

EXT HttpProxy和ArrayReader配合无法成功装载数据

时间:2010-10-28

来源:互联网

程序目的:
当载入JS代码时,创建出Lang对象(继承Store),载入数据是通过HttpProxy及ArrayReader对象来加载及解析的,
然后在JS代码中调用Lang.get(id),获取Store中的数据.

其中JS实现代码如下:
JScript code

Lang = function(url1){
var httpProxy = new Ext.data.HttpProxy({url:url1});
        var arrayReader = new Ext.data.ArrayReader({id:0},[
                                {name:"ID",mapping:0,type: "string"},
                                {name:"TEXT",mapping:1,type: "string"}
                        ]);
        
        Lang.superclass.constructor.call(this,{
                proxy: httpProxy,
                reader:arrayReader
        });
        this.load(
           {callback:function(data,option,success){
                            if(success){
                                 alert(data);    
                            }
                 }
         });
};
Ext.extend(Lang,Ext.data.Store,{
  get : function(id){
      return this.getById(id).get("TEXT");
   }
});
var lang = new Lang('lang.jsp');



通过异步调用,JSP返回的内容是:
<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />[['1','aaa'],['2','bbb']]
也试过返回:
[['1','aaa'],['2','bbb']]

以上代码,当我调用var lang = new Lang('lang.jsp');语句时,在回调函数中能正常打印出从JSP返回的数据,但在fireBug中发现,Store对象中的data确无法正确装载,所以通过
lang.get('1')也无法正确获到我想要的数据'aaa'.

请比较了解EXT的帮忙看看上面代码,是哪里出问题了,怎么解决呀

作者: qwerasdf123   发布时间: 2010-10-28

new Ext.data.ArrayReader 这个是加载静态数组 你可以考虑换成jsonreader 或者xml 处理, 
没有必要重写 直接用store 或者simplestore 方便处理

作者: leehuat   发布时间: 2010-10-28

看下api 看下reader中的mapping 是什么意思.

作者: asdujiayong   发布时间: 2010-10-28

热门下载

更多