extjs 从action层获得list,使其展示在form表单里的textfield,如何实现?后台已完成,到前台交互时,不会写。求大神指导。妹纸先谢谢啦

发布于 2021-11-21 05:24:52 字数 3491 浏览 870 评论 13

后台action:
//与前台form表单相联系
private List<DataTPSdto> dataTypeList;
public List<DataTPSdto> getDataTypeList() {
	return dataTypeList;
}

public void setDataTypeList(List<DataTPSdto> dataTypeList) {
	this.dataTypeList = dataTypeList;
}
public String viewFormData(){
	dataTypeList = new ArrayList<DataTPSdto>();
	DataTPSdto d1 = new DataTPSdto();
	d1.setDataTpDesc("描述");
	d1.setDataTpName("int");
	d1.settNDataTPId(1L);
	d1.setParent(false);
	dataTypeList.add(d1);
	return "viewFormData/success";
}

xml配置:

<!-- 传dataType数据至前台form -->
 <result name="viewFormData/success" type="json">
       <param name="root">dataTypeList</param> 
 </result>
前台js:

Ext.onReady(function(){
    var myFormPanel =  new Ext.form.Panel({
        width: 845,
        autoHeight: true,
        layout: {
            type: 'column'
        },
        bodyPadding: 10,
        items:[
            {
                xtype: 'textfield',
                margin: '5 10 5 10',
                width: 282,
                fieldLabel: 'Data Id',
                labelWidth: 130,
                emptyText:"Id",
                id:"tNDataTPId",
                name:"tNDataTPId"
                //value:"PropertyTypeName"
            },
            {
                xtype: 'textfield',
                margin: '5 10 5 10',
                width: 282,
                fieldLabel: 'Data Name',
                labelWidth: 130,
                emptyText:"Name",
                name:"DataTpName"
               // value:"PropertyTypeDiscripiton"
            },
            {
                xtype: 'textfield',
                margin: '5 10 5 10',
                width: 282,
                fieldLabel: 'Data Desc',
                labelWidth: 130,
                emptyText:"Desc",
                name:"DataTpDesc"
               // value:"PropertyTypeDiscripiton"
            },
            {
                xtype: 'textfield',
                margin: '5 10 5 10',
                width: 282,
                fieldLabel: 'IsParent',
                labelWidth: 130,
                emptyText:"parent?",
                name:"isParent"
               // value:"PropertyTypeDiscripiton"
            }
        ]
    });

    myFormPanel.render(document.body);
    Ext.define("dataTypeList",{
        extend:"Ext.data.Model",
        fields:  [{name: 'dataTypeList.tNDataTPId',type:'string'},
                 {name: 'dataTypeList.DataTpName',type:'string'},
                 {name: 'dataTypeList.DataTpDesc',type:'string'},
                 {name: 'dataTypeList.isParent',type:'string'}
                ]
    });

    Ext.Ajax.request({
    	url:"test/test!viewFormData.action",
        success:function(response,options){
            var o = Ext.JSON.decode(response.responseText);
            var control = o.control;
            alert(control);//此处alert出undefined
            //Ext.getCmp("tNDataTPId").setValue(o.name);
            }

    });
});
页面效果图:


请求的响应截图:

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(13

乞讨 2021-11-27 04:34:36

@lxbzmy 那我想请问这样的话在formPanel中对应的什么,是通过name对应的么?

浅沫记忆 2021-11-27 04:34:31

formPanel.getForm().setValues(json)  直接设置表单,要求key能对应上,个别对应不上的需要手工设置。

在高级点就用form.load ,不过更麻烦点。

等风来 2021-11-27 04:34:30

@remielxf 没误导啦,我也看过文档,没有实例参考,我有些不会写,总是报错。不过,还是谢谢啦~

疾风者 2021-11-27 04:19:24

回复
   load( Object/String/Function config ) : Ext.Panel

利用XHR的访问加载远程的内容,立即显示在面板中。Loads this...

利用XHR的访问加载远程的内容,立即显示在面板中。Loads this content panel immediately with content returned from an XHR call.

参数项:

config : Object/String/Function

特定的配置项对象,可包含以下选项: A config object containing any of the following options:

返回值:

Ext.Panel

this

 Panel  

看了一下文档。。我也不知道可不可以。。我就不误导你了....

可是我不能没有你 2021-11-27 04:16:32

@remielxf 唉,我是新手,很多方法了解得还不是很透彻,想到的方法都是比较死的,或者有点绕的,我也想改进,但不知道如何写,能不能把你说的这个方法详细说一下啊,谢啦谢啦~

为你鎻心 2021-11-27 04:15:18

是不是要配置id属性啊?

还有ext没有类似loadform的方法吗

月牙弯弯 2021-11-27 03:59:33

alert(o.dataTpName);

少女净妖师 2021-11-27 02:57:39

 var o = Ext.JSON.decode(response.responseText);

debug看看是什么 是数组的话 你再o[0]才能取到那个对象

嘦怹 2021-11-27 01:28:32

 var o = Ext.JSON.decode(response.responseText);

debug看看是什么 是数组的话 你再o[0]才能取到那个对象

一人独醉 2021-11-26 17:10:24

@remielxf 确实是的,我看响应里的数据,把dataTpName看成了control内的其中一项了,我现在alert(o.dataTpName),结果出来了,是正确的,请问,我该怎么把他们一个一个地对应放到textfield里面呢,用我注释掉的那一行吗?(//Ext.getCmp("tNDataTPId").setValue(o.name);)

等风来 2021-11-26 16:07:04

回复
你试试嘛。。我也没用过ext...我ligerUI 比较熟。

毁梦 2021-11-26 05:12:18

回复
试过了,是可以的,谢啦!

拍不死你 2021-11-25 14:57:21

control 里没有dataTpName 属性啊....你自己看看 当然undefined

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文