读书人

ExtJs的Ext.create(amp;#x27;Ext.data.St

发布时间: 2013-01-25 15:55:29 作者: rapoo

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\"}]}");
}

[解决办法]
不会C# 但可以指出一个小错误:是male 不是mail
结果为0那个问题 我只能不负责地猜几个原因
1 Ajax是异步传输 你那句alert太快了 数据还没传过来呢
2 检查model user 里面field定义 name gender 了吗
[解决办法]
异步的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());

读书人网 >Ajax

热点推荐