日期:2014-05-16  浏览次数:20407 次

三天两夜纠结在这简单extjs问题上,程序员妹纸求救ing
如题
用struts2+extjs2.2做的界面显示(没Spring)

本来不熟悉这个,领导要做demo,只好叫我这个做测试的现在来开发。

问题这样:

struts的action返回了如下数据:
{"ajaxResult":"success","jsonItems":[{"username":"李主任","state":"1","userid":"131000000000000001","depid":CC0320","type":"0"}]}

然后我调用extjs写的js脚本,相关内容如下:

Ext.onReady(function() {

       ......

     var infostore=new Ext.data.JsonStore({
            url:'../gridShow/userInfoDisplay.action',
            root:'jsonItems',
            fields:['userid','type','state','depid','username']
        });
     infostore.load();

     var fieldArray = [ 'userid','type','state','depid','username'];
    
       var simpleForm = new Ext.FormPanel({
         store:infostore,
         renderTo : document.body,
         labelAlign : 'left',
         title : '人员基本信息',
         buttonAlign : 'right',
         border : false,// 没有边框
         frame : true,
         fill : true,
         labelWidth :0,
         reader :new Ext.data.JsonReader( {
         successProperty: 'ajaxResult',
                 root :'store'
         }, fieldArray),

           ....
           ....

问题如下:这是一个从数据库获取用户信息并展示在web页面上的表单
  我用FireBug确信action已经返回json数据给前端,内容如开头一样,但是
1、我无法打印解析出来的数据,用Dialog对话框打印值总是显示 object:object
2、如何保存Json传回来的数据?
3、如何将获取的数据给每个TextField赋值?就是如何在表单上显示数据库信息?

我查了无数的帖子,没有一个适用的。。。

脸上起了无数的痘痘,5555555555555555555555555555555555.。。。。。。。。。。。。

------解决方案--------------------

var simpleForm = new Ext.form.FormPanel({
defaultType:'textfield',
renderTo:document.body,
items:[
{name:'username', fieldLabel:'用户名'},
{name:'state', fieldLabel:'state'},
{name:'userid', fieldLabel:'用户ID'},
{name:'depid', fieldLabel:'depid'},
{name:'type', fieldLabel:'类型'}
],
store:new Ext.data.JsonStore({
url:'../gridShow/userInfoDisplay.action',
root:'jsonItems',
fields:['userid','type','state','depid','username']
}),
buttons:[
{text:'加载',handler:function(b){
var form = b.findParentByType('form');
form.el.mask('数据加载中');
form.store.load({
callback:function(r){
if(r.length > 0)form.getForm().loadRecord(r[0]);
form.el.unmask();
form = null;
}
});
}}
]
});

简单地写了一个,测试没