您的位置:首页 > Web前端 > JavaScript

ExtJS4如何给同一个formpanel不同的url

2014-05-02 00:00 555 查看
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

这种方法对于组件的重用是一个不错的方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: