从后台返回一条JSON数据,如何转换成ext的record

班门弄斧 2011-06-14 04:47:05

var r = action.result.jsondata;


想把json转换成record,然后EditUserInfofp.getForm().loadRecord(record)进行页面加载
...全文
421 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
班门弄斧 2011-06-17
  • 打赏
  • 举报
回复
还有高人指点吗
flyerwing 2011-06-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 licip 的回复:]
// 定义一个用户对象,这样便于我们动态的添加记录,虽然也可以设置成匿名内置对象
var User = Ext.data.Record.create([
// 下面的 "name" 匹配读到的标签名称, 除了 "birthDay",它被映射到标签 "birth"
{name: 'id', type: 'int' },
{name: 'name', type: 'string……
[/Quote]
按照这个大虾的写发就转了,当然可以参考文档做.\
wern0565 2011-06-16
  • 打赏
  • 举报
回复
试试:

if(btn=="ok")
{
USERstore.reload();
var r = action.result.jsondata;

USERstore.loadData(r);
//此处USERstore是reload了,但是在此处访问时访问不到最新的数据,所以只能在这边做处理,返回刚才的最新数据r,并想转换成record,form重新加载 }
}

班门弄斧 2011-06-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 licip 的回复:]
// 定义一个用户对象,这样便于我们动态的添加记录,虽然也可以设置成匿名内置对象
var User = Ext.data.Record.create([
// 下面的 "name" 匹配读到的标签名称, 除了 "birthDay",它被映射到标签 "birth"
{name: 'id', type: 'int' },
{name: 'name', type: 'string……
[/Quote]
你的思路应该对我来说是很有用的,但是感觉有点繁琐,毕竟当字段比较多的时候,那么Ext.data.Record.create的时候就比较繁琐了,我刚才把我的代码贴在上面了,不晓得大家还能看的懂,其实意思就是:无路是修改还是添加数据后,模态Window不关闭,直接重新加载刚才保存的数据
班门弄斧 2011-06-16
  • 打赏
  • 举报
回复

//主页面定义一个store
var fields = ["user_no","user_id","user_name","lpwd","shop_no","shop_name","isadmin","lltime","available"];
var USERstore = new Ext.data.GroupingStore({
proxy:new Ext.data.HttpProxy(
{
url:"SysUserBrowse.aspx?param=SysUser"
}),
reader:new Ext.data.JsonReader(
{
fields:fields,
root:"data",
id:"user_no",
totalProperty:"totalCount"
}),
sortInfo:{field:'user_no',direction: "ASC"}
});
//加载时参数
USERstore.load({params:{start:0,limit:pageSize}});

//定义一个EditUserInfoWin,在添加数据提交成功后,想加载刚才的最新记录
EditUserInfofp.form.submit({
url:"SysUserHandle.aspx?func_id="+func_id+"&&user_no="+EditUserInfofp.form.findField("user_no").getValue(),
params:{dp_datas:jsonData},
method:"POST",
success:function(form,action)
{
var flag=action.result.success;
if(flag=="true")
{
Ext.MessageBox.show({
title: '提示',
msg:'信息保存成功!',
animEl:'saveid',
buttons:Ext.Msg.OK,
closable:false,
icon:Ext.MessageBox.WARNING,
fn:function(btn)
{
if(btn=="ok")
{
USERstore.reload();
var r = action.result.jsondata;

//此处USERstore是reload了,但是在此处访问时访问不到最新的数据,所以只能在这边做处理,返回刚才的最新数据r,并想转换成record,form重新加载 }
}
});
}
else
{
var message=action.result.error
Ext.MessageBox.show({
title: '提示',
msg:message,
animEl:'saveid',
icon:Ext.MessageBox.ERROR
});
}
},
failure:function(form,action)
{
Ext.MessageBox.show({
title:'提示',
msg:'保存信息失败!',
animEl:'saveid',
icon:Ext.MessageBox.ERROR
});
}
});
班门弄斧 2011-06-16
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wern0565 的回复:]
试试:

JScript code


if(btn=="ok")
{
USERstore.reload();
var r = action.result.jsonda……
[/Quote]
我这边loadData不行,是不是对r的格式有要求???
USERstore的格式已经定义在前面了,那么返回的r应该格式是什么样的?
licip 2011-06-14
  • 打赏
  • 举报
回复
// 定义一个用户对象,这样便于我们动态的添加记录,虽然也可以设置成匿名内置对象
var User = Ext.data.Record.create([
// 下面的 "name" 匹配读到的标签名称, 除了 "birthDay",它被映射到标签 "birth"
{name: 'id', type: 'int' },
{name: 'name', type: 'string'},
{name: 'area'},
{name: 'email', type: 'string'},
{name: 'age', type: 'int'}, // automatic date conversions
{name: 'birth', type: 'date'},
{name: 'sex', type: 'bool'}
]);

var p = {
name: '新用户' + n,
area: '北京',
email: 'beansoft@126.com',
age: 20,
birth: (new Date()).clearTime(),
sex: 1
};

var pp = new User(p);

EditUserInfofp.getForm().loadRecord(pp)
希望对你有用。
豆虫 2011-06-14
  • 打赏
  • 举报
回复
json格式是什么
record格式是什么
说明下

87,990

社区成员

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

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