sky2245331 2010-09-03 00:36
浏览 283
已采纳

用后台JSON填充EXT FormPanel 无数据显示

我再TABPANEL上建了grid,在选择grid上的一条数据后点击“修改”按钮,弹出个window内嵌套了FormPanel 并用后台传来的JSON数据填充该FORM。页面倒是弹出来了,后台传来的JSON也正常啊,但怎么就是数据填充不上去啊。。。有谁来帮我看看什么问题吗~?代码如下
[code="java"]

var but = this;

but.setDisabled(true);
var gridPanel = Ext.getCmp(n.id);
var gsm = gridPanel.getSelectionModel();
var row = gsm.getSelections();
if (row.length > 0 && row.length <= 1) {
var selectRowId = row[0].get("userId");
if (!Ext.getCmp(n.id + 'edit-user-win')) { // 判断是否已经存在该窗口 n.id是树节点的ID
// alert(selectRowId);
new Ext.Window({
id : n.id + 'edit-user-win', // 设置ID
iconCls : 'option',
title : '修改用户',
collapsible : true,
width : 400,
height : 320,
plain : true,
resizable : false, // 不能调整大小
items : new Ext.form.FormPanel({
id : n.id + 'edit-user-form',
layoutConfig : {
labelSeparator : ":"
},
labelWidth : 80,
labelAlign : "right",
layout : "form",
headerAsText : false,
animCollapse : true,
autoScroll : false,
buttonAlign : "right",
hideBorders : false,
disabledClass : 'color:black',
frame : true,
border : false,
reader : new Ext.data.JsonReader({
successProperty : 'success',
root : 'user',
id : 'userId'
}, new Ext.data.Record.create([{
name : 'users.userId',
mapping : 'userId',
type : 'string'
}, {
name : 'users.userName',
mapping : 'userName',
type : 'string'
}, {
name : 'users.trueName',
mapping : 'trueName',
type : 'string'
}, {
name : 'users.tel',
mapping : 'tel',
type : 'string'
}, {
name : 'users.mobile',
mapping : 'mobile',
type : 'string'
}, {
name : 'users.email',
mapping : 'email',
type : 'string'
}, {
name : 'users.address',
mapping : 'address',
type : 'string'
}, {
name : 'users.sex',
mapping : 'sex',
type : 'string'
}])),
bodyStyle : 'padding:5px',
defaults : {
width : 100
},
items : [{
xtype : 'hidden',
id : 'edit-userId',
name : 'users.userId'
}, {
xtype : "textfield",
id : 'edit-userName',
name : 'users.userName',
fieldLabel : "用户名",
anchor : "100%",
disabled : true,
anchor : '95%'
}, {
xtype : "textfield",
id : 'edit-trueName',
name : 'users.trueName',
fieldLabel : "姓名",
anchor : "100%",
emptyText : "请输入您的真实姓名",
maxLength : 20,
maxLengthText : "姓名输入过长,必须在20个字符以内",
allowBlank : false,
blankText : "姓名为必填字段",
anchor : '95%'
}, {
xtype : "combo",
id : 'edit-sex',
name : 'users.sex',
triggerAction : "all",
fieldLabel : "性别",
anchor : "100%",
readOnly : true,
store : new Ext.data.SimpleStore({
fields : ["value",
"name"],
data : [['男', '男'],
['女', '女']]
}),
displayField : 'name',
valueField : 'value',
mode : 'local',
// lazyRender : true,
// typeAhead : true,
// triggerAction : 'all',
// forceSelection : true,
anchor : '95%'
}, {
xtype : "textfield",
id : 'edit-tel',
name : 'users.tel',
fieldLabel : "电话号码",
anchor : "100%",
maxLengthText : "电话号码过长",
maxLength : 15,
emptyText : "",
regex : /^[0-9]+$/,
regexText : '输入必须为数字',
anchor : '95%'
}, {
xtype : "textfield",
id : 'edit-mobile',
name : 'users.mobile',
fieldLabel : "手机号码",
anchor : "100%",
maxLengthText : "手机号码过长",
maxLength : 15,
regex : /^[0-9]+$/,
regexText : '输入必须为数字',
anchor : '95%'
}, {
xtype : "textfield",
id : 'edit-email',
name : 'users.email',
fieldLabel : "电子邮件",
anchor : "100%",
vtype : "email",
vtypeText : "电子邮件格式不正确",
maxLengthText : "电子邮件过长",
maxLength : 100,
anchor : '95%'
}, {
xtype : "textarea",
id : 'edit-address',
name : 'users.address',
fieldLabel : "地址",
maxLength : 200,
maxLengthText : "地址过长,必须在200个字符以内",
anchor : '95%'
}],
buttons : [{
text : '确定',
type : 'submit',
handler : function() {

                                        }
                                    }]
                        })
            }).show();
    Ext.getCmp(n.id + 'edit-user-form').form.load({
                url : 'findUser',
                params : {
                    'users.userId' : selectRowId
                }
            });
} else {
    Ext.getCmp(n.id + 'edit-user-win').setActive(true);
}
Ext.getCmp(n.id + 'edit-user-win').on('close', function() {
            but.setDisabled(false);// grid面板上修改按钮
        });

} else {
Ext.Msg.show({
title : '操作提示',
msg : '请确认是否选中一条需要操作的信息!',
buttons : Ext.Msg.OK,
icon : Ext.Msg.INFO
});
but.setDisabled(false);
}
[/code]

后台传来的JSON也正常啊
如下:
[code="json"]
{"success":true,"user":{"address":null,"createDate":null,"email":null,"flag":null,"mobile":null,"sex":null,"tel":null,"trueName":"123123","updateDate":null,"userId":"20100902000000000047","userName":"123123","userPwd":null}}
[/code]

下图是firebug控制台的东西。。。得到的JSON数据
[img]http://dl.iteye.com/upload/attachment/302656/a96e3f08-046a-34cb-bece-30f42f2e68e0.jpg[/img]

  • 写回答

4条回答 默认 最新

  • works001 2010-09-03 09:01
    关注

    我用的3.1版本测试的 没发现什么问题 值赋上去了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 Spark加载本地pipelinemodel报错
  • ¥20 电脑鼠标键盘不好使了
  • ¥15 求糕手!用matlab求解目标规划模型🙏
  • ¥15 画出的分类图不对,求解答一下
  • ¥20 springboot和springcloud版本问题
  • ¥15 ps2手柄控制树莓派小车
  • ¥30 C#:vsto powerpoint的外接程序
  • ¥30 stata将do文件代码转化为ado文件
  • ¥15 两个同维数组相比,不同位置、出现重复比无意义,而不同位置、不出现重复比,则有意义。把有意义的两个数组放入新的集合MK中。
  • ¥15 写一个可直接调用的函数,将32位有符号数转成另一个无符号的数