formpanel可以這樣使用,api上的例子:
var panel=Ext.create('Ext.form.Panel', {
title: 'Simple Form',
bodyPadding: 5,
width: 350,
// 將會通過 AJAX 請求提交到此URL
//url: 'save-form.php',
// 表單域 Fields 將被豎直排列, 占滿整個寬度
layout: 'anchor',
defaults: {
anchor: '100%'
},
// The fields
defaultType: 'textfield',
items: [{
fieldLabel: 'First Name',
name: 'first',
allowBlank: false
},{
fieldLabel: 'Last Name',
name: 'last',
allowBlank: false
}],
// 重置 和 保存 按鈕.
buttons: [{
text: '重置',
handler: function() {
this.up('form').getForm().reset();
}
}, {
text: '保存',
formBind: true, //only enabled once the form is valid
disabled: true,
handler: function() {
var form = this.up('form').getForm();
if (form.isValid()) {
form.submit({
success: function(form, action) {
Ext.Msg.alert('保存成功', action.result.msg);
},
failure: function(form, action) {
Ext.Msg.alert('操作失敗', action.result.msg);
}
});
}
}
}],
renderTo: Ext.getBody()
);
再看API,formpanel竟然沒有url的配置,也沒有獲得api的函數。。想來應該是formpanel的父類的參數。。
后來去看了看ext.form.basic,果然有url配置項。。
在Ext中FormPanel并中并不保存表單數據,其中的數據是由BasicForm保存,在提交表單的時候需要獲取當前FormPanel中的BasicForm來進行提交.
在獲取BasicForm對象后便可進行表單的提交操作
因為要在項目中要用到2個組件,這2個組件唯一的差別是提交的url不一樣,故我在定義組件時沒有定義url這一項
然后在組件添加到不同容器時順便把不同的url也給上,以上面那個例子為例
在需要的地方
panel.getForm().url='../LogSelectServlet';//在不同的地方可以像這樣賦值不同的URL
這種方法對于組件的重用是一個不錯的方法。