从后台返回一条JSON数据,如何转换成ext的record var r = action.result.jsondata;想把json转换成record,然后EditUserInfofp.getForm().loadRecord(record)进行页面加载 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 json格式是什么record格式是什么 说明下 // 定义一个用户对象,这样便于我们动态的添加记录,虽然也可以设置成匿名内置对象 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: '[email protected]', age: 20, birth: (new Date()).clearTime(), sex: 1 };var pp = new User(p);EditUserInfofp.getForm().loadRecord(pp)希望对你有用。 //主页面定义一个storevar 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 }); } }); 你的思路应该对我来说是很有用的,但是感觉有点繁琐,毕竟当字段比较多的时候,那么Ext.data.Record.create的时候就比较繁琐了,我刚才把我的代码贴在上面了,不晓得大家还能看的懂,其实意思就是:无路是修改还是添加数据后,模态Window不关闭,直接重新加载刚才保存的数据 试试:if(btn=="ok") { USERstore.reload();var r = action.result.jsondata;USERstore.loadData(r);//此处USERstore是reload了,但是在此处访问时访问不到最新的数据,所以只能在这边做处理,返回刚才的最新数据r,并想转换成record,form重新加载 } } 我这边loadData不行,是不是对r的格式有要求???USERstore的格式已经定义在前面了,那么返回的r应该格式是什么样的? extjs tablepanel 问题 JavaScript中的prototype怎么理解?? 会服务器端javascrpit代码的高手请来帮帮忙!! js高手请进(50分奉上) 请教高手表单提交生成页面的问题 如何用javascript或标签让文本在netscape浏览器中上下滚动? 求一正则表达式 在我的机子可以,为什么传上去就不行了??提示有当前页的脚本发生错误!!! 如何点击A页面上的打印按钮打印B页面的内容? 寻JavaScript电子版好书,不好的就不要UP了, 请问在IE上显示正常,在火狐上怎么不显示,该如何修改 jquery.validationEngine 验证
record格式是什么
说明下
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: '[email protected]',
age: 20,
birth: (new Date()).clearTime(),
sex: 1
};var pp = new User(p);EditUserInfofp.getForm().loadRecord(pp)
希望对你有用。
//主页面定义一个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
});
}
});
{
USERstore.reload();
var r = action.result.jsondata;USERstore.loadData(r);
//此处USERstore是reload了,但是在此处访问时访问不到最新的数据,所以只能在这边做处理,返回刚才的最新数据r,并想转换成record,form重新加载 }
}
USERstore的格式已经定义在前面了,那么返回的r应该格式是什么样的?