在FormPanel没有配置url和reader时,也可以通过FormPanel.form.load()方法添加url来直接加载数据,但此时需要server端返回的数据遵循一定的格式.
var url = Listener + '?className=etl.db.VariableManage&thodName=getVariableJSONById¶mCount=1¶m_0='+ variable_id; formPanel.form.load({ waitTitle : "请稍候", waitMsg : "正在加载表单数据,请稍候......", url : url, success : function(form, action) { }, failure : function(form, action) { Ext.MessageBox.alert('加载失败', action.result.errors); } });
server端需要返回的字符串格式:
"{success:true,data:{ variableName:'',variableCategory:'',variableCode:'',variableMeaning:''}}"
或者用双引号:
"{success:true,data:{ variableName:\"\",variableCategory:\"\",variableCode:\"\",variableMeaning:\"\"}}"
相应的组件会自动被赋值。所谓相应的组件,指name属性为json串里字段的组件。比如:
var variableName = new Ext.form.TextField({ xtype : 'textfield', name : 'variableName', fieldLabel : '名称', emptyText : '请输入', allowBlank : false, anchor : '90%', selectOnFocus : true });
如果不指明name属性的话,只声明var variableName是找不到组件的