转自:
http://liuna718-163-com.iteye.com/blog/805522
在使用Extjs中,除了GridPanel以为,使用最多的应该用的是FormPanel了,在使用FormPanel肯定少不了,数据的提交和加载,现在本人总结下FormPanel数据提交和加载的方法
1.FormPanel数据提交包括两种方式,一种是使用BasicForm的submit方式进行ajax的异步提交,另一种是使用原始的HTML表单的提交方式
1.1BasicForm的submit方式进行ajax的异步提交
form.getForm().submit({
url: '<%=request.getContextPath()%>/formsort.do?method=test',
waitTitle : '请等待' ,
waitMsg: '正在提交中',
success:function(form,action){
//url后台返回的数据{success:true,msg:'成功'}
Ext.Msg.alert('提示','保存'+action.result.msg);
},
failure:function(form,action){
Ext.Msg.alert('提示','保存失败!');
}
});
完整代码如下:
var form = new Ext.form.FormPanel({
frame : true ,
defaultType : 'textfield' ,
buttonAlign : 'center' ,
labelAlign : 'right' ,
//此处添加url,那么在getForm().sumit方法不需要在添加了url地址了
url: '<%=request.getContextPath()%>/formsort.do?method=saveOrUpdateFormSort',
baseParams : {create : true },
labelWidth : 70 ,
items : [
{
fieldLabel : 'id' ,
xtype : 'hidden',
name : 'formSortUuid'
},
{
fieldLabel : '名称' ,
name : 'sortName'
},{
fieldLabel : '描述' ,
xtype : 'textarea' ,
name : 'description'
}
] ,
buttons : [
{
text : '确定' ,
handler : function(){
//FormPanel自身带异步提交方式
form.getForm().submit({
//url: '<%=request.getContextPath()%>/formsort.do?method=saveOrUpdateFormSort',
waitTitle : '请等待' ,
waitMsg: '正在提交中',
success:function(form,action){
//url后台返回的数据{success:true,msg:'成功'}
Ext.Msg.alert('提示','保存'+action.result.msg);
},
failure:function(form,action){
Ext.Msg.alert('提示','保存失败!');
}
});
}
}
]
});
1.2原始的HTML表单的提交方式
采用原始的提交方式需要覆盖掉BasicForm的onSubmit和submit方法,完了直接调用submit即可
代码如下:
var form = new Ext.form.FormPanel({
frame : true ,
defaultType : 'textfield' ,
buttonAlign : 'center' ,
labelAlign : 'right' ,
baseParams : {create : true },
//覆盖BasicForm的onSubmit方法
onSubmit: Ext.emptyFn,
//覆盖BasicForm的submit方法
submit: function() {
form.getForm().getEl().dom.action = '<%=request.getContextPath()%>/formsort.do?method=saveOrUpdateFormSort' ;
form.getForm().getEl().dom.submit();
},
labelWidth : 70 ,
items : [
{
fieldLabel : 'id' ,
xtype : 'hidden',
name : 'formSortUuid'
},
{
fieldLabel : '名称' ,
name : 'sortName'
},{
fieldLabel : '描述' ,
xtype : 'textarea' ,
name : 'description'
}
] ,
buttons : [
{
text : '确定' ,
handler : function(){
/*采用传统的HTML的同步提交*/
form.getForm().submit();
}
}
]
});
说明:在BasicForm中有一个standardSubmit : Boolean
如果此项设置为true,将使用标准的HTML表单提交代替XHR(Ajax)方式的提交。 (默认值为 false)
在FormPanel把standardSubmit设置为true,就可以用同步提交的方式,但因为extjs2.0版本中sumit源码里边没有指定原始form表单的action属性,所以没有办法提交,但在3.0版本已经添加了,可以直接指定standardSubmit为true即可进行同步提交
2.FormPanel数据加载采用1BasicForm的load方法
1BasicForm的load方法,要求数据返回方式必须满足以下格式
{
success: true,
data: {
formSortUuid: "Fred. Olsen Lines",
namename: "FXT",
description: "OSL"
}
}
完整代码如下:
var form = new Ext.form.FormPanel({
frame : true ,
defaultType : 'textfield' ,
buttonAlign : 'center' ,
labelAlign : 'right' ,
baseParams : {create : true },
labelWidth : 70 ,
items : [
{
fieldLabel : 'id' ,
xtype : 'hidden',
name : 'formSortUuid'
},
{
fieldLabel : '名称' ,
name : 'sortName'
},{
fieldLabel : '描述' ,
xtype : 'textarea' ,
name : 'description'
}
] ,
buttons : [
{
text : '加载' ,
handler : function(){
/*
{
success: true,
data: {
formSortUuid: "Fred. Olsen Lines",
namename: "FXT",
description: "OSL"
}
}
*/
form.getForm().load({
url: '<%=request.getContextPath()%>/formsort.do?method=saveOrUpdateFormSort',
waitTitle : '请等待' ,
waitMsg: '正在加载中',
success:function(form,action){
alert(action.result.data)
},
failure:function(form,action){
Ext.Msg.alert('提示','保存失败!');
}
});
}
]
});
分享到:
相关推荐
在表单提交场景下,Ext Ajax提供了方便的API进行数据的序列化和提交。 3. **表单数据序列化** 在使用Ext Ajax提交表单前,通常需要先将表单数据序列化为JSON或URL编码格式。ExtJs 4.0的FormPanel对象提供了`get...
对于更复杂的需求,如动态添加或删除表单字段,FormPanel 提供了`add`和`remove`方法。同时,`loadRecord`方法可以用来从记录对象中加载表单数据,而`getValues`和`getRecord`则用于获取当前表单的值或转换为记录...
它可能包含了创建表单、动态添加和删除字段的逻辑,以及与服务器通信的代码。通过阅读和分析这个文件,我们可以更深入地了解如何在实际项目中应用这些技术。 总之,动态添加表单是ExtJS开发中的一个重要技巧,它...
在本篇文章中,我们将深入探讨如何使用Extjs4中的FormPanel组件从后台加载JSON数据,并将其映射到表单的各个字段中进行显示。这是一项非常实用的技术,尤其是在需要动态填充表单的情况下。 ### 一、Extjs4 ...
根据提供的文件信息,我们可以深入探讨如何在ExtJS中利用FormPanel进行数据加载和提交的核心概念与实践技巧。 ### FormPanel的Form对象 在ExtJS框架中,`FormPanel`是处理表单数据的一个核心组件。当我们在使用`...
总的来说,提交ExtJS表单涉及前端的表单构建、事件监听以及后端的接收和处理。确保前后端通信的正确性,理解HTTP请求和响应的机制,以及熟悉ExtJS的API,都是实现这一功能的关键。通过以上步骤,你可以顺利地完成...
在ExtJS中,`Ext.form.Panel`(或简称为`formpanel`)是一种非常重要的组件,用于创建表单来收集用户输入的数据。本文将详细介绍两种在ExtJS formpanel中加载数据的方法,以供开发者参考。 ### 方法一:使用`...
ExtJS的表单使用FormPanel容器 表单使用的布局方式:form和formtable布局 ExtJS的表单和html的form标签是相似的,新建一个FormPanel实际上就是新建一个html的form标签,只是添加许多Ext的样式而已
在EXT JS这个强大的JavaScript框架中,FormPanel是用于创建表单的重要组件,它允许开发者构建交互式的、数据驱动的Web应用程序。FormPanel不仅提供了一种布局管理方式,还支持各种表单元素,如文本框、复选框、下拉...
这种结合允许用户在表单提交内容时,享受到类似于桌面应用的文本编辑体验,同时利用ExtJS的其他功能,如表格展示、数据管理和用户界面的美化。 集成FCKeditor到ExtJS应用中通常需要以下步骤: 1. 引入FCKeditor的...
FormPanel是一个用于创建表单的组件,它提供了丰富的布局和表单控件,如文本框、复选框、下拉列表等,使得用户可以输入、编辑和提交数据。Store则是一个数据容器,它负责存储和管理数据模型,可以与各种组件(如...
本文将详细介绍ExtJS中常用表单组件的创建、应用以及验证和数据绑定等方面的知识,旨在帮助读者深入理解和掌握ExtJS表单的使用方法。 ### 表单面板(FormPanel)的创建 在ExtJS中,表单面板(FormPanel)是创建...
在EXTJS4的API中,通常我们会看到一个`url`属性,这个属性指定了FormPanel在提交表单时将数据发送到的服务器端处理地址。然而,如果希望同一个FormPanel实例能够根据不同的上下文提交到不同的URL,我们需要稍微调整...
1. **创建接收端点**:创建一个ASP.NET页面或Web API控制器方法,这个方法会接收EXTJS表单提交的数据。数据通常以POST方式发送,ASP.NET可以通过`Request.Form`或`Request.InputStream`来获取。 2. **处理数据**:...
表格组件GridPanel是Extjs中的亮点之一,它不仅可以展示大量数据,还支持复杂的列模型和行操作。此外,GridPanel的分页功能和扩展组件如摘要行、可展开行、分组视图等,让数据的展示更加直观和易于管理。 通过学习...
Model定义了数据结构,Store负责存储和管理数据,Proxy则处理数据的获取和提交,实现了数据和视图的实时同步。 4. **事件处理**:ExtJS 2.1的事件驱动模型使得用户交互变得简单,每个组件都有一系列预定义的事件,...
1. **创建FormPanel**:在前端使用ExtJs创建FormPanel,添加必要的表单字段。 2. **设置表单提交方式**:配置FormPanel的submit方法,指定服务器端处理脚本的URL。 3. **服务器端处理**:服务器端(ASP.net)接收...
用户可以通过EXTJS的FormPanel进行预订操作,提交表单数据到ASP.NET的服务器端方法,处理预订逻辑并返回响应。 EXTJS还支持Ajax通信,这与ASP.NET的MVC模式或Web Forms模式都非常契合。EXTJS的Ajax请求可以调用ASP...
1. 创建(Create):当用户添加新记录时,Store会将数据提交给Proxy,Proxy再将请求发送到服务器。服务器处理请求后,返回成功或失败的响应,Store根据响应更新其内部状态。 2. 读取(Read):通过Store的load方法...
6. **服务器端处理**: 在EXTJS中完成前端的文件选择和提交后,服务器端需要接收并处理这些上传请求。这通常涉及到接收文件流,将其保存到服务器的指定位置,并可能需要返回一些确认信息。 7. **进度条显示**: 虽然...