ext中读取json数据的问题

linger_liang 2009-09-11 11:25:02
我开发的环境是.net2008的mvc框架+ext,我在服务期端的cs文件里将json数据生成,代码如下
public void GetCheck()
{
//db是已定义好的数据模块
var query = from a in db.SysUserAutTbl
select a;
int icount = query.Count();
var query1 = query.ToList();
string output = JsonConvert.SerializeObject(query1);
output = "{\"TotalRecord\":" + icount.ToString() + ",\"Data\":" + output + "}";
Response.Write(output);
}
output就是最后生成的json数据,如下
{"TotalRecord":3,"Data":[{"ID":1,"UserID":1,"MenuID":1,"QueryAut":"1","CreateAut":"1","UpdateAut":"1","DeleteAut":"1","PrintAut":"1","ApproveAut":"1","OtherAut1":"1","OtherAut2":"1","OtherAut3":"1","OtherAut4":"1","OtherAut5":"1","DiscretionAut":"1","SetAut":"1","ImportAut":"1","ExportAut":"1","ViewAut":"1","UploadAut":"1","DownloadAut":"1"},{"ID":2,"UserID":1,"MenuID":2,"QueryAut":"1","CreateAut":"1","UpdateAut":"1","DeleteAut":"1","PrintAut":"1","ApproveAut":"1","OtherAut1":"1","OtherAut2":"1","OtherAut3":"1","OtherAut4":"1","OtherAut5":"1","DiscretionAut":"1","SetAut":"1","ImportAut":"1","ExportAut":"1","ViewAut":"1","UploadAut":"1","DownloadAut":"1"},{"ID":3,"UserID":1,"MenuID":3,"QueryAut":"1","CreateAut":"1","UpdateAut":"1","DeleteAut":"1","PrintAut":"1","ApproveAut":"1","OtherAut1":"1","OtherAut2":"1","OtherAut3":"1","OtherAut4":"1","OtherAut5":"1","DiscretionAut":"1","SetAut":"1","ImportAut":"1","ExportAut":"1","ViewAut":"1","UploadAut":"1","DownloadAut":"1"}]}

然后我要在js里接收这个json数据,再对他进行遍历当有字段值为1我就进行一些操作,现在的问题是,我在js里怎么也接不过来数据,请大家帮忙看看,问题出在哪里,js接收json数据的代码如下:


var proxy = new Ext.data.HttpProxy({
url:'/UserMenuAut/GetCheck',
method:'GET'
});

var reader = new Ext.data.JsonReader(
{root:'Data',totalProperty :'TotalRecord'},
[
{name: 'ID'},
{name: 'UserID'},
{name: 'MenuID'},
{name: 'QueryAut'},
{name: 'CreateAut'},
{name: 'UpdateAut'},
{name: 'DeleteAut'},
{name: 'PrintAut'},
{name: 'ApproveAut'},
{name: 'OtherAut1'},
{name: 'OtherAut2'},
{name: 'OtherAut3'},
{name: 'OtherAut4'},
{name: 'OtherAut5'},
{name: 'DiscretionAut'},
{name: 'SetAut'},
{name: 'ImportAut'},
{name: 'ExportAut'},
{name: 'ViewAut'},
{name: 'UploadAut'},
{name: 'DownloadAut'}
]
);

var store = new Ext.data.Store(
{proxy:proxy,reader:reader}
);

store.load();
var licount=store.getCount();
});
...全文
151 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
hookee 2009-09-11
  • 打赏
  • 举报
回复
alert()的时候数据还没加载完毕,要在load事件中alert.
另外确保 /UserMenuAut/GetCheck仅返回json数据


<link rel="stylesheet" type="text/css" href="extjs/resources/css/ext-all.css" />
<script type="text/javascript" src="extjs/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="extjs/ext-all.js"></script>
<script>
Ext.onReady(function(){
var oRecord = Ext.data.Record.create([
{name:'ID'},
{name: 'UserID'},
{name: 'MenuID'},
{name: 'QueryAut'},
{name: 'CreateAut'},
{name: 'UpdateAut'},
{name: 'DeleteAut'},
{name: 'PrintAut'},
{name: 'ApproveAut'},
{name: 'OtherAut1'},
{name: 'OtherAut2'},
{name: 'OtherAut3'},
{name: 'OtherAut4'},
{name: 'OtherAut5'},
{name: 'DiscretionAut'},
{name: 'SetAut'},
{name: 'ImportAut'},
{name: 'ExportAut'},
{name: 'ViewAut'},
{name: 'UploadAut'},
{name: 'DownloadAut'}
]);
var store = new Ext.data.Store({
proxy:new Ext.data.HttpProxy({url:'/UserMenuAut/GetCheck'}),
reader: new Ext.data.JsonReader({
totalProperty: 'TotalRecord',
root: 'Data'
},oRecord),
listeners:{
"load":function(){
var licount=store.getCount();
alert(licount);
}
}
});
store.load({});
});
</script>
linger_liang 2009-09-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 rosejason 的回复:]
firefox看了页面接收到值了没有?
[/Quote]
接到了,访问'/UserMenuAut/GetCheck'这个地址,页面就能出现json数据的
西安风影 2009-09-11
  • 打赏
  • 举报
回复
ext前台:
Ext.Ajax.request({
url: 'SubmitMessage.aspx',
params: {author:authorTextBox.getValue(),face:face,content:contentTextBox.getValue()},
callback: function(options,success,response){
if(success)
{
ds.load({params:{start:0, limit:10}});
}
}
cs后台:
string callBack = Request.QueryString["callback"];
sb.Append(callBack + "({\"totalCount\":\"" 。。。。。。。。

这是我以前模仿别的站写的,加了一个callBack,我尝试去掉callBack,就接收不到数据,加上就可以了
但我一直不明白为什么?
rosejason 2009-09-11
  • 打赏
  • 举报
回复
firefox看了页面接收到值了没有?
linger_liang 2009-09-11
  • 打赏
  • 举报
回复
自己顶一下
linger_liang 2009-09-11
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 hookee 的回复:]
alert()的时候数据还没加载完毕,要在load事件中alert.
另外确保 /UserMenuAut/GetCheck仅返回json数据

HTML code<linkrel="stylesheet" type="text/css" href="extjs/resources/css/ext-all.css"/><scripttype="text/javascript" src="extjs/adapter/ext/ext-base.js"></script><scripttype="text/javascript" src="extjs/ext-all.js"></script><script>
Ext.onReady(function(){var oRecord= Ext.data.Record.create([
{name:'ID'},
{name:'UserID'},
{name:'MenuID'},
{name:'QueryAut'},
{name:'CreateAut'},
{name:'UpdateAut'},
{name:'DeleteAut'},
{name:'PrintAut'},
{name:'ApproveAut'},
{name:'OtherAut1'},
{name:'OtherAut2'},
{name:'OtherAut3'},
{name:'OtherAut4'},
{name:'OtherAut5'},
{name:'DiscretionAut'},
{name:'SetAut'},
{name:'ImportAut'},
{name:'ExportAut'},
{name:'ViewAut'},
{name:'UploadAut'},
{name:'DownloadAut'}
]);var store=new Ext.data.Store({
proxy:new Ext.data.HttpProxy({url:'/UserMenuAut/GetCheck'}),
reader:new Ext.data.JsonReader({
totalProperty:'TotalRecord',
root:'Data'
},oRecord),
listeners:{"load":function(){var licount=store.getCount();
alert(licount);
}
}
});
store.load({});
});</script>
[/Quote]


太牛了,真的可以了,太厉害了!结贴
xiuyouxu 2009-09-11
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 hookee 的回复:]
alert()的时候数据还没加载完毕,要在load事件中alert.
另外确保 /UserMenuAut/GetCheck仅返回json数据

HTML code<linkrel="stylesheet" type="text/css" href="extjs/resources/css/ext-all.css"/><scripttype="text/javascript" src="extjs/adapter/ext/ext-base.js"></script><scripttype="text/javascript" src="extjs/ext-all.js"></script><script>
Ext.onReady(function(){var oRecord= Ext.data.Record.create([
{name:'ID'},
{name:'UserID'},
{name:'MenuID'},
{name:'QueryAut'},
{name:'CreateAut'},
{name:'UpdateAut'},
{name:'DeleteAut'},
{name:'PrintAut'},
{name:'ApproveAut'},
{name:'OtherAut1'},
{name:'OtherAut2'},
{name:'OtherAut3'},
{name:'OtherAut4'},
{name:'OtherAut5'},
{name:'DiscretionAut'},
{name:'SetAut'},
{name:'ImportAut'},
{name:'ExportAut'},
{name:'ViewAut'},
{name:'UploadAut'},
{name:'DownloadAut'}
]);var store=new Ext.data.Store({
proxy:new Ext.data.HttpProxy({url:'/UserMenuAut/GetCheck'}),
reader:new Ext.data.JsonReader({
totalProperty:'TotalRecord',
root:'Data'
},oRecord),
listeners:{"load":function(){var licount=store.getCount();
alert(licount);
}
}
});
store.load({});
});</script>
[/Quote]
up

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧