Extjs在form展示后台单个对象的属性

Posted 天涯已可

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Extjs在form展示后台单个对象的属性相关的知识,希望对你有一定的参考价值。

目的:写一个按钮事件,点击时弹出一个win窗体,里面镶嵌form表单,并且展示后台单个对象的属性

1 先来后台:
2 public void find(){
3         String clientId = request.getParameter("clientId");
4         BusinessContract bc = businessContractService.getLastContract(clientId);
5         response.setContentType("text/html;charset=UTF-8");
6         JSONObject json = JSONObject.fromObject(bc);
7         ajaxWrite("{bc:["+json.toString()+"]}");
8     }
前台代码:
    win 和form放在一起
text:\'客户合同上传\',
            scope:this,
            handler: function(item, event){
                var record=this.getSelectionModel().getSelected();
                if(!record){
                    Ext.MessageBox.alert(\'提示\', \'请选择客户信息!\');
                    return;
                }
                var clientId=record.id;
                var adr = \'************\';  //form表单提交路径
                var findadr="*****************";//form表单数据来源
                var company =record.data.bi_name;//来源于选中行的数据
                var uploadForm=new Ext.form.FormPanel({//按照顺序,先创建一个form表单
                    width:600,
                    baseCls: \'x-plain\',
                    frame:true,
                    layout: \'form\',
                    fileUpload: true,//文件上传必须添加该属性,(PS:此处出现问题,添加该属性之后返回值里action.result为空,去掉则正常,暂时没解决)
                    autoHeight:true,
                    labelWidth:90,
                    defaults:{
                        anchor: \'95%\',  
                        allowBlank: false  
                    },
                    renderTo: Ext.getBody(),
                    reader: new Ext.data.JsonReader({//此处动态加载数据的属性获取
                        root: \'bc\'  //取值对象
                        },
                        [    //对象里面的字段
              
\'contractType\', \'companyAddress\',\'companyName\',\'companyPhone\',\'taxNum\',\'bankName\', \'bankNum\',\'financer\', {name:\'taxpayerFile1\',convert :function(v,record){  //这里是上传文件的路径,本来是服务器路径,这里就不予展示,直接提示是否上传过 if(v){ return \'已经上传\'; }else{ return \'暂无文件\'; }; }}, {name:\'taxpayerFile2\',convert :function(v,record){ if(v){ return \'已经上传\'; }else{ return \'暂无文件\'; }; }},{name:\'docmentFile\',convert:function(v,record){
                   if(v){      
                    return \'已经上传\';
                                }else{
                                    return \'暂无文件\';
                                };}
                },
                        {name:\'sdate\',type:"date",mapping:\'sdate.time\',convert :function(v,record){  //日期字段,此处接受的字段格式:"edate":{"date":9,"day":5,"hours":0,"minutes":0,"month":5,"nanos":0,"seconds":0,"time":149693                                                                           // 7600000,"timezoneOffset":-480,"year":117}   所以只能对格式加以控制
                             return  Ext.util.Format.date(new Date(v),\'Y-m-d\');
                         }},    
                        {name:\'edate\',type:"date",mapping:\'edate.time\',convert :function(v,record){
                             return  Ext.util.Format.date(new Date(v),\'Y-m-d\');
                         }},
                        \'paymentDays\'
                        ,\'amount\',\'saler\',\'content\'
                        ]), 
                    items:[{
                            fieldLabel:\'当前客户\',
                            xtype : \'tbtext\',
                            text:\'<b>\'+company+\'</b>\',
                            valueField :clientId,
                            name :\'compnay\'
                        },{
                            fieldLabel:\'合同类型\',
                            xtype:\'attrCombo\',
                            displayField:\'name\',
                            valueField :\'name\',
                            editable:false,
                            url:\'/cs/customer/cct_find.ftl\',
                            name:\'contractType\'
                        },{
                             name:\'companyName\',
                             xtype:\'textfield\',
                             allowBlank:false,
                             fieldLabel: \'甲方全称*\'
                         },{
                             name:\'companyAddress\',
                             xtype:\'textfield\',
                             fieldLabel: \'甲方地址\',
                             allowBlank:true,
                         },{
                             name:\'companyPhone\',
                             xtype:\'textfield\',
                             allowBlank:true,
                             fieldLabel: \'甲方电话\'
                         },{
                             name:\'taxNum\',
                             xtype:\'textfield\',
                             fieldLabel: \'甲方税号\',
                             allowBlank:true,
                            regex: /^[\\w-]{15}([\\w-]{3})?$/
                         },{
                             name:\'bankName\',
                             xtype:\'textfield\',
                             allowBlank:true,
                             fieldLabel: \'甲方开户行\'
                         },{
                             name:\'bankNum\',
                             xtype:\'textfield\',
                             allowBlank:true,
                             fieldLabel: \'银行账号\'
                         },{
                             name:\'financer\',
                             xtype:\'textfield\',
                             allowBlank:true,
                             fieldLabel: \'账单负责人\'
                         },{
                            fieldLabel : \'纳税人证明1*\',
                            xtype : \'fileuploadfield\',
                            name : \'taxpayerFile1\',
                            allowBlank:false,
                            buttonText: \'浏览\',
                        },{
                            fieldLabel : \'纳税人证明2*\',
                            xtype : \'fileuploadfield\',
                            name : \'taxpayerFile2\',
                            buttonText: \'浏览\',
                            allowBlank:true,
                        },{
                            fieldLabel : \'合同文件\',
                            xtype : \'fileuploadfield\',
                            name : \'docmentFile\',
                            buttonText: \'浏览\',
                            allowBlank:true,
                        },{
                            fieldLabel: \'服务开始时间*\',                
                            name: \'sdate\',
                            allowBlank:false,
                            xtype:\'datefield\',
                            format:\'Y-m-d\',
                        },{
                            fieldLabel: \'服务结束时间*\',                
                            name: \'edate\',
                            allowBlank:false,
                            xtype:\'datefield\',
                            format:\'Y-m-d\'
                        },{
                            fieldLabel: \'付费账期/天*\',                
                            name: \'paymentDays\',
                            allowBlank:false,
                            xtype:\'numberfield\'
                        },{
                            fieldLabel: \'金额/月*\',                
                            name: \'amount\',
                            allowBlank:false,
                            xtype:\'numberfield\'
                        },{
                            fieldLabel: \'销售人*\',                
                            name: \'saler\',
                            allowBlank:false,
                            xtype:\'textfield\'
                        },{
                            fieldLabel: \'备注\',                
                            name: \'content\',
                            height:135,
                            allowBlank:true,
                            xtype:\'textarea\'
                        }
                    ], 
                    buttons:[{
                        text:\'确定\',
                        handler: function(){
                            var form =uploadForm.getForm();
                            form.submit({
                                url: adr,
                                method:\'POST\',
                                params: {
                                    clientId: clientId
                                },
                                success: function(from,action){
                                    if(action.result){
                                         Ext.MessageBox.alert(\'提示\',action.result.message);
                                    }else{
                                        Ext.MessageBox.alert(\'提示\',\'返回值不存在\');
                                    }
//                                    uploadForm.getForm().reset();
                                }, failure: function (from,action) {
                                    Ext.MessageBox.alert(\'失败\',"上传失败,请检查内容后尝试!");
                                    win.hide();
                                 },
                            });
                        }
                        }]
                }) ;
                uploadForm.load({  //动态加载数据
                    url:findadr,
                });
                var win=new Ext.Window({
                        title : \'上传新文档\',  
                        width : 600,  
                        autoHeight: true,  
                        border : false,  
                        plain : true,  
                        modal : true,  
                        layout : \'fit\',  
                        bodyStyle : \'padding:5px;\',  
                        maximizable : false,// 禁止最大化  
                        closeAction : \'hide\',  
                        closable : true,// 是否有关闭  
                        collapsible : false,// 可折叠  
                        iconCls : \'bind\',  
                        buttonAlign:\'center\',
                        items : [uploadForm],
                    });
                win.show();
                },

结果:

以上是关于Extjs在form展示后台单个对象的属性的主要内容,如果未能解决你的问题,请参考以下文章

ajax传递数组form表单提交对象数组

Extjs4 表单提交传递JSON格式到后台

Extjs form 表单的 submit

必须展示窗口才能截图怎么办,伪后台截图思路

vue框架

extjs4 前台导出grid数据 生成excel,数据量大后台无法接收到数据