在使用Extjs4的Store读取数据的时候,死活读不到数据,请各位高手帮忙看看<script language="javascript" type="text/javascript">
Ext.onReady(function(){
Ext.define("User",{
extend:"Ext.data.Model",
fields:[{name:"name",type:"string"},{name:"age",type:"int"}]
});
var jsonReader=new Ext.data.reader.Json({
root:"rows",
type:"json"
});
var store=new Ext.data.Store({
model:"User",
proxy:{
type:"ajax",
url:"test.json",
reader:jsonReader
},
autoLoad:true
});
store.each(function(record){
alert(record.get("name"));
});
alert(store.getCount());

});
</script>
test.json文件如下
{rows:[{name:"symjie",age:23},{name:"singleboy",age:45}]}
使用的是php服务器,使用firebug测试了一下,可以得到数据,Store.data.items里面是有值的
但是store.getCount()却得到是0,并且
store.each(function(record){
   alert(record.get("name"));
});
读不出数据。很是怪异!
注意:我已经设置autoLoad:true了!

解决方案 »

  1.   

    在load成功后取
    var store = new Ext.data.Store({
        model: "User",
        proxy: {
            type: "ajax",
            url: "test.json",
            reader: jsonReader
        },
        autoLoad: true,
        listeners: {
            load: function() {
                store.each(function(record) {
                    alert(record.get("name"));
                });
            }
        }
    });     
      

  2.   

    store.load(function () {
            store.each(function (record) {
                alert(record.get("UserName"));
            });
        });
        store.load(function (records) {
            alert("加载了" + store.getCount() + " 笔记录回来。");
        });