var r = action.result.jsondata;
想把json转换成record,然后EditUserInfofp.getForm().loadRecord(record)进行页面加载

解决方案 »

  1.   

    json格式是什么
    record格式是什么 
    说明下
      

  2.   

     // 定义一个用户对象,这样便于我们动态的添加记录,虽然也可以设置成匿名内置对象
        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)
    希望对你有用。
      

  3.   


    //主页面定义一个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
                                            });
                                        }
                                    });
      

  4.   

    你的思路应该对我来说是很有用的,但是感觉有点繁琐,毕竟当字段比较多的时候,那么Ext.data.Record.create的时候就比较繁琐了,我刚才把我的代码贴在上面了,不晓得大家还能看的懂,其实意思就是:无路是修改还是添加数据后,模态Window不关闭,直接重新加载刚才保存的数据
      

  5.   

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

  6.   

    我这边loadData不行,是不是对r的格式有要求???
    USERstore的格式已经定义在前面了,那么返回的r应该格式是什么样的?