Extjs中如何获取jsonstore的某个值

c0kaishi 2010-03-06 10:47:11
我的项目中吧个人信息放到session中,但是extjs不能操作session,那么我吧值放在一个jsonstore里,然后该怎么获取某个具体的值啊?代码:
var edit_info_panel=new Ext.FormPanel({
url:'userservlet?method=updateuser',
bodyStyle:'padding-top:10px',
defaultType:'textfield',
labelAlign:'right',
baseCls:'x-plain',
labelWidth:65,
labelPad:5,
defaults:{msgTarget:'under'},
items:[{
xtype:'hidden',
name:'id'
//value:uid
},{
name:'petname',
fieldLabel:'个性昵称',
emptyText:user_info.getAt(0).get('petname')
},
{
name:'relname',
fieldLabel:'真实姓名'
//value:relname
},{
name:'birthday',
xtype:'datefield',
format:'Y-m-d',
anchor:'50%',
fieldLabel:'出生年月'
//value:birthday
},{
name:'email',
vtype:'email',
fieldLabel:'电子邮件'
//value:email
},{
name:'logo',
xtype:'textarea',
fieldLabel:'个性签名',
height:50,
width:220
//value:logo
}],
buttonAlign : 'center',
buttons : [{
text : '修改',
handler : function(btn) {

}
}, {
text : '重置',
handler : function() {
}
}, {
text : '取消',
handler : function() {
this.ownerCt.ownerCt.hide();
}
}]
});

var personal_info=new Ext.Window({
title:'个人资料修改',
width:350,
plain:true,
autoHeight:true,
closable:false,
buttonAlign:'center',
items:[edit_info_panel]
});
var user_info=new Ext.data.JsonStore({ url:'userservlet?method=getUserByUsername&username=c0kaishi', root:'cuuruser', fields:['id','username','petname','relname','birthday','email','logo']});user_info.load();
user_info的json数据为:
{'cuuruser':[{'id':100003,'username':'c0kaishi','petname':'我为卿痴','relname':'null','birthday':'2010-03-01','email':'yufan_hy@163.com','logo':'null'}]}



当我从某个按钮激活这个窗口的时候,怎么能够过去的各个组件的原始值,以便修改
...全文
1866 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhoushubi 2010-03-09
  • 打赏
  • 举报
回复
学习了!回复内容太短了!
lin364653705 2010-03-09
  • 打赏
  • 举报
回复
嗯,明白你的意思了!那这样的话,问题很简单!
在你点击编辑个人资料的时候,触发一个方法
handler:editUser
然后
function editUser(){
Ext.Ajax.request({
url : 'users.do?function=getCurrentUserInfo',
success : function(response, options) {
var result = response.responseText;
//然后将你的var edit_info_panel,window写在这里


},
failure : function(response, options) {
Ext.Msg.alert('错误', '服务器端失败,请稍后重试');
}
})
}

在你的后台getCurrentUserInfo方法当中,就使用session中的ID,去查询数据库,将获得的信息拼成一个字符串比如 "ID#NAME#AGE",如果你的信息所有都在session当中,那就将session中的值,直接拼起就可以
然后在
var result = response.responseText;  //获得返回的字符串
var user=result.split('#');
var id=user[0];
var name=user[1];
var edit_info_panel=new Ext.FormPanel({
..........
items:[{
xtype:'hidden',
name:'id'
value:uid //填充值
},{..........


实际上就是在你的页面显示之前,前页面包装在 Ext.Ajax.request,去请求一次后台,获得你想要的数据,显示就可以
onion3389 2010-03-09
  • 打赏
  • 举报
回复
你可以这样,给你的每个fieldLabel设置一个ID
items:[{
id: uid,
xtype:'hidden',
name:'id'
//value:uid
},{
name:'petname',
fieldLabel:'个性昵称',
emptyText:user_info.getAt(0).get('petname')
},
{
name:'relname',
fieldLabel:'真实姓名'
//value:relname
},{
name:'birthday',
xtype:'datefield',
format:'Y-m-d',
anchor:'50%',
fieldLabel:'出生年月'
//value:birthday
},{
name:'email',
vtype:'email',
fieldLabel:'电子邮件'
//value:email
},{
name:'logo',
xtype:'textarea',
fieldLabel:'个性签名',
height:50,
width:220
//value:logo
}],

然后在
buttonAlign : 'center',
buttons : [{
handler: function(){
var fp = this.ownerCt.ownerCt, form = fp.getForm();
form.submit();
}
}]
zhoushubi 2010-03-09
  • 打赏
  • 举报
回复

var test= new Ext.form.TextField({
width : 270,
fieldLabel : '测试,
name : 'test'

});
TestService.getStringValue("Test", function(retturn) {
hostaddress.setValue(retturn);

})




你看看这样可以不?我后台方法时读取的XML 文件数据!!
lin364653705 2010-03-08
  • 打赏
  • 举报
回复
那你是怎样获得要修改的那个那行数据???比如说这行的ID值
c0kaishi 2010-03-08
  • 打赏
  • 举报
回复
引用 3 楼 lin364653705 的回复:
你是如何触发这个修改窗口的???比如说,是将jsonstore的值已经存放在grid当中,然后,双击某一行修改??
  你修改数据,肯定是针对jsonstore的某一行数据!
没有使用grid
c0kaishi 2010-03-08
  • 打赏
  • 举报
回复
引用 6 楼 lin364653705 的回复:
那你是怎样获得要修改的那个那行数据???比如说这行的ID值

我的情况是这样的,比如说我登陆进了系统后,我想修改一下我的个人资料,点修改资料后弹出一个窗口,里面有一些原始信息?我的问题就是怎么把这些值赋给各个表单。 不知道我这样说是不是能清楚一点。
lin364653705 2010-03-07
  • 打赏
  • 举报
回复
你是如何触发这个修改窗口的???比如说,是将jsonstore的值已经存放在grid当中,然后,双击某一行修改??
你修改数据,肯定是针对jsonstore的某一行数据!

lin364653705 2010-03-07
  • 打赏
  • 举报
回复
var param="";
for (var i = 0; i < store.data.length; i++) {
param= store.getAt(i).get('COL1');
}
兼哲 2010-03-06
  • 打赏
  • 举报
回复
有沒有具體代碼?????????
c0kaishi 2010-03-06
  • 打赏
  • 举报
回复
var edit_info_panel=new Ext.FormPanel({
url:'userservlet?method=updateuser',
bodyStyle:'padding-top:10px',
defaultType:'textfield',
labelAlign:'right',
baseCls:'x-plain',
labelWidth:65,
labelPad:5,
defaults:{msgTarget:'under'},
items:[{
xtype:'hidden',
name:'id'
//value:uid
},{
name:'petname',
fieldLabel:'个性昵称',
emptyText:user_info.getAt(0).get('petname')
},
{
name:'relname',
fieldLabel:'真实姓名'
//value:relname
},{
name:'birthday',
xtype:'datefield',
format:'Y-m-d',
anchor:'50%',
fieldLabel:'出生年月'
//value:birthday
},{
name:'email',
vtype:'email',
fieldLabel:'电子邮件'
//value:email
},{
name:'logo',
xtype:'textarea',
fieldLabel:'个性签名',
height:50,
width:220
//value:logo
}],
buttonAlign : 'center',
buttons : [{
text : '修改',
handler : function(btn) {

}
}, {
text : '重置',
handler : function() {
}
}, {
text : '取消',
handler : function() {
this.ownerCt.ownerCt.hide();
}
}]
});

var personal_info=new Ext.Window({
title:'个人资料修改',
width:350,
plain:true,
autoHeight:true,
closable:false,
buttonAlign:'center',
items:[edit_info_panel]
});
var user_info=new Ext.data.JsonStore({ url:'userservlet?method=getUserByUsername&username=c0kaishi', root:'cuuruser', fields:['id','username','petname','relname','birthday','email','logo']});user_info.load();

52,797

社区成员

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

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