一、基础的Form表单
首先Form是一个容器,可用于存放展示各种组件,form中提供了对form中组件的校验,与数据获取等方法来方便form操作。
二、Form的布局
layout: { type: ‘table‘, columns: 2 }
form中推荐一般用table的方式来布局
三、Form的验证与提交
form提交以前都要经过验证,
if(me.form.isValid()){ var obj = me.form.getFieldValues(); //obj即form中获取的参数对象,对象key值对应各组件的name }
验证后推荐ajax的提交方式
Ext.Ajax.request({ url: url, jsonData: obj, //以对象形式提交到后台 params:obj, //以parmas的形式提交到后台 success: function(res){ Pactera.logger.showMsg("Save team success."); me.callback(); me.up(‘window‘).close(); } });
四、Form的数据加载
Ext.Ajax.request({ url: ‘team?id=‘+ me.teamId, success: function(res){ var responseText = arguments[0].responseText; var team = Ext.decode(responseText); var teamRecord = new Pactera.model.Team(team);//通过Model实例化为record me.form.loadRecord(teamRecord);//form加载record //一些特殊组件需要再组织手动添加 } });
五、当查看详情时设置只读
可以直接将form的disabled属性设置为true,
也可以将form下的各组件的readOnly属性设置为true,
var setFlagByArr = function(arr){ for(var i in arr){ arr[i].setReadOnly(true); } } var arr1 = form.query(‘textfield‘); var arr2 = form.query(‘radio‘); var arr3 = form.query(‘checkbox‘); setFlagByArr(arr1); setFlagByArr(arr2); setFlagByArr(arr3);
本文出自 “雪飘七月” 博客,请务必保留此出处http://xuepiaoqiyue.blog.51cto.com/4391594/1675696
原文:http://xuepiaoqiyue.blog.51cto.com/4391594/1675696