当前位置: 代码迷 >> Ajax >> ExtJs的Ext.create('Ext.data.Store')失去始终空记录!疯了!
  详细解决方案

ExtJs的Ext.create('Ext.data.Store')失去始终空记录!疯了!

热度:567   发布时间:2012-12-17 09:31:40.0
ExtJs的Ext.create('Ext.data.Store')得到始终空记录!疯了!!!
你说吧!!!这个简单的东西,为什么结果就是0!!!!第一个是javascript前台,第二个是ashx后台。这么简单的东西!!!!
    
var store=Ext.create('Ext.data.Store',{
        model:'Users',
        proxy:{
            type:'ajax',
            url:'App_Ashx/Demo/Grid.ashx',
            reader:{
                //type:'json',
                totalProperty:'totalCount',
                root:'data'
            }
        }
    });
alert(store.getCount());

后台:
    
public void ProcessRequest(HttpContext context)
    {
        context.Response.Clear();
        context.Response.ContentType = "text/plain";
        //context.Response.ContentType = "json/application";
        context.Response.Write("{\"totalCount\":2,\"success\":true,\"data\":[{\"Name\":\"wys\",\"Gender\":\"mail\"},{\"Name\":\"wys1\",\"Gender\":\"mail\"}]}");
    }

------最佳解决方案--------------------
异步的ajax,ajax没返回数据前就已经执行alert(store.getCount());这句代码了,当然输出0

增加load事件,加载完毕输出才行


var store=Ext.create('Ext.data.Store',{
        model:'Users',
        proxy:{
            type:'ajax',
            url:'App_Ashx/Demo/Grid.ashx',
////////////////////////
            listeners:{load:function(store,records,success,opts){alert(store.getCount())}},
            reader:{
                //type:'json',
                totalProperty:'totalCount',
                root:'data'
            }
        }
    });
alert(store.getCount());


------其他解决方案--------------------
不会C# 但可以指出一个小错误:是male 不是mail
结果为0那个问题 我只能不负责地猜几个原因
1 Ajax是异步传输  你那句alert太快了 数据还没传过来呢
2 检查model user 里面field定义 name gender 了吗
------其他解决方案--------------------
帮看看啊真的不知道怎么回事
------其他解决方案--------------------
你的store/reader里怎么没定义fields?
  相关解决方案