你说吧!!!这个简单的东西,为什么结果就是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());