ExtJS的几种提交方式(6种)

最近做的项目都是用的ExtJS框架,随着项目做的越多,接解到的ExtJS的控件和功能也越来越多。下面来总结一下ExtJS中的几种数据提交方式:

1.表单Ajax提交(常用)

表单Ajax提交是我目前用的最多的一种,直接使用form.submit(),它会把form面板上的所有控件的值全部传递后台。Ajax的特点之一就是不刷新页面,提高用户体验。后台必须返回JSON格式,success返回true则执行success:function(form,action)里面的代码,返回false则执行failure:function(form,action)中的代码。

var panel222=new Ext.form.FormPanel({

……//form属性或配置项

buttons:[{

text:'保存',

handler:function (){

var aa=stag.getForm();//获取面板

if(aa.isValid()){//通过验证

aa.submit({//提交

url : 'Form/stagingDateAdd.ashx',

method : 'POST',

waitTitle : "提示",//等待的标题

waitMsg : '正在提交数据...',//等待的信息

success : function(panel,action){

Ext.Msg.alert('信息','信息提交成功!');

},

failure : function(form,'信息提交失败!');

}

});

}

}

}]

});

2. 普通Ajax提交

这种提交方式可以设置传递到后台的参数,如果不想把面板上的控件全部传递到后台,就可以用这种提交方式。需要注意的是,不管后台返回的信息是成功或失败都要执行success:function…,所以要在success方法里面判断一下返回的字符串,如果返回success:true,说明操作成功,返回success:false,说明操作失败。Failure方法是访问不到后台时执行的方法。

var formBasisContent=new Ext.form.FormPanel({

……//form属性或配置项

buttons:[{

text:"提交",

handler:function(){

varbasicForm=formBasisContent.getForm();

if(basicForm.isValid()){

Ext.Ajax.request({

method:'POST',

url:'Form/BasisContentAdd.ashx',

params:{ ID:ID },//想要传递到后台的参数

success:function(response,action){

var resp=Ext.util.JSON.decode(response.responseText);//获取从后台传递回来的字符串

if(resp .success==true )

{//提交成功,成功访问后台

Ext.Msg.alert("提示","提交成功!");

}

else

Ext.Msg.alert('错误',resp.errors.info);

},

failure:function(response,action){ //无法访问后台}

}]

});

以上返回函数也可以这样写:

//指定Ajax请求的回调函数,该函数不管是调用成功或失败,都会执行。

     callback: function(options,success,response) {

        if(success){

Msginfo(response.responseText);

}

     }

3.通过Ext.data.Connection提交数据

这种提交方式在grid中删除行时用到过。此提交方式没有限制返回的数据格式,不过我的项目后台返回的一直都是JSON格式数据,其他格式没有试过。

var conn=newExt.data.Connection();

conn.request({

url:'Form/BasisContentDelete.ashx',

params:{ deleteID_basisContent:basisContentID },//要传递的参数

method:'POST',

scope:this,

callback:function(options,response){//回调函数

if(success )

{//操作成功}

else//操作失败

Ext.Msg.alert("失败","删除失败,请重试!");

}

})

以上3种提交方式是我目前做项目时用到过的。下面是查资料时从网上看到的ExtJS提交方式。

4.普通方式提交

适合一次操作页面,即提交后跳转到另外一个页面

var form1= new Ext.FormPanel({

……//form属性或配置项

buttons:[{

text:"提交",

handler:function(){

if(form1.form.isValid()){

//只用指定TextField的id或者name属性,服务器端Form中就能取到表单的数据
//如果同时指定了id和name,那么name属性将作为服务器端Form取表单数据的Key
varform=form1.getForm().getEl().dom;
form.action='submit.aspx?method=Submit1&param1=abc';
//指定为GET方式时,url中指定的参数将失效,表单项转换成url中的key=value传递给服务端
//例如这里指定为GET的话,url为:submit.aspx?param2=你输入的值
form.method='GET';//GET、POST
form.submit();
}

}

}]

});

5.关于hmtl表单和extJS表单的Ajax提交方式之一

这种方式将为ext的ajax指定一个html表单,使用这种方式,不需要将待传递的参数进行封装(没有params属性,表单全部传递到后台)

function saveUser_ajaxSubmit2(){
Ext.Ajax.request({
url :'user_save.action',
method : 'post',
form : 'userForm', // 指定表单
success : function(response,options){//操作成功
var o =Ext.util.JSON.decode(response.responseText);//获取后台返回JSON格式数据

alert(o.msg);
},

failure : function() {//操作失败}

});

}

6.关于hmtl表单和extJS表单的Ajax提交方式之二

这种方式将html的表单转化为ext的表单进行异步提交,使用这种方式,需要定义好html的表单(同样不能指定传递参数)

function saveUser_ajaxSubmit4() {

newExt.form.BasicForm('userForm').submit( {

waitTitle : '请稍后...',

waitMsg : '正在保存用户信息,请稍后...',

url :'user_save.action',

method :'post',

success: function(form,action){

alert(action.result.msg);

},

failure : function(form,action){

alert(action.result.msg);

}

});

}

Ext6种异步提交方式的更多相关文章

  1. HTML5新增form控件和表单属性实例代码详解

    这篇文章主要介绍了HTML5新增form控件和表单属性实例代码详解,需要的朋友可以参考下

  2. wordpress添加Html5的表单验证required方法小结

    这篇文章主要介绍了wordpress添加Html5的表单验证required方法小结,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  3. HTML5表单验证特性(知识点小结)

    这篇文章主要介绍了HTML5表单验证特性的一些知识点,本文通过实例代码截图的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  4. amazeui页面分析之登录页面的示例代码

    这篇文章主要介绍了amazeui页面分析之登录页面的示例代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  5. ios – OpenCV构建问题,找不到ext/atomicity.h

    我得到编译器错误抱怨在构建包含OpenCV的项目时.环境是针对iOS的Xcode4.5.它为模拟器编译良好,但在为设备构建时失败.这是错误文本:我正在使用opencv2.framework,使用指令here构建cmake.解决方法默认情况下,XCode4.5使用libc(支持C11的LLVMC标准库)生成要构建的新项目.但OpenCV期望针对GNUlibstd

  6. ios – Swift Eureka Form中的循环

    我正在构建一个Eureka表单,并希望在表单中放置一个循环来构建基于数组的步进器列表.我试图使用的代码是:但是,当我这样做时,我在StepperRow行上出现了一个错误:所以看起来Swift不再认为它在形式之内并且正在关注

  7. 应用程序关闭时的iOS任务

    我正在构建一个应用程序,通过ajax将文件上传到服务器.问题是用户很可能有时不会有互联网连接,并且客户希望在用户重新连接时安排ajax调用.这可能是用户在离线时安排文件上传并关闭应用程序.应用程序关闭时可以进行ajax调用吗?

  8. swift 上传图片和参数 upload image with params

    Alamofire.upload(urlRequest.0,urlRequest.1).progress{(bytesWritten,totalBytesWritten,totalBytesExpectedToWrite)inprintln("\(totalBytesWritten)/\(totalBytesExpectedToWrite)")}}

  9. swift – 使用PostgreSQL在Vapor 3中上传图片

    我正在关注这些家伙MartinLasek教程,现在我正在“图片上传”.似乎没有人能回答“如何上传iVapor3图像”的问题Db连接正常,所有其他值都保存.这是我的创建方法:和型号:}和叶子模板:我知道需要一种管理文件的方法和原始图像字节,但我怎么去那里?这使用多部分表单的自动解码:upload.leaf文件是:使用File类型可以访问上载文件的本地文件名以及文件数据.如果将其余的Question字段添加到ExampleUpload结构中,则可以使用该路径捕获整个表单的字段.

  10. Android Studio 2.3更新:警告:使用不兼容的插件进行注释处理:android-apt.这可能会导致意外行为

    所以,我已经阅读了本网站上有关此问题的所有问题.我还与其中一位有类似问题的开发人员聊天,他能够解决这个问题.我没有在我的gradle脚本中编写apt或annotationProcessor.我的代码中没有任何地方写过android-apt这个词.我甚至继续检查了所有的库.这包含在我的项目中.这是一个非常大的问题,需要解决.我在下面附加修改后的build.gradle,请建议:解决方法较旧版本的Re

随机推荐

  1. xe-ajax-mock 前端虚拟服务

    最新版本见Github,点击查看历史版本基于XEAjax扩展的Mock虚拟服务插件;对于前后端分离的开发模式,ajax+mock使前端不再依赖后端接口开发效率更高。CDN使用script方式安装,XEAjaxMock会定义为全局变量生产环境请使用xe-ajax-mock.min.js,更小的压缩版本,可以带来更快的速度体验。

  2. vue 使用 xe-ajax

    安装完成后自动挂载在vue实例this.$ajaxCDN安装使用script方式安装,VXEAjax会定义为全局变量生产环境请使用vxe-ajax.min.js,更小的压缩版本,可以带来更快的速度体验。cdnjs获取最新版本点击浏览已发布的所有npm包源码unpkg获取最新版本点击浏览已发布的所有npm包源码AMD安装require.js安装示例ES6Module安装通过Vue.use()来全局安装示例./Home.vue

  3. AJAX POST数据中文乱码解决

    前端使用encodeURI进行编码后台java.net.URLDecoder进行解码编解码工具

  4. Koa2框架利用CORS完成跨域ajax请求

    实现跨域ajax请求的方式有很多,其中一个是利用CORS,而这个方法关键是在服务器端进行配置。本文仅对能够完成正常跨域ajax响应的,最基本的配置进行说明。这样OPTIONS请求就能够通过了。至此为止,相当于仅仅完成了预检,还没发送真正的请求呢。

  5. form提交时,ajax上传文件并更新到<input>中的value字段

  6. ajax的cache作用

    filePath="+escape;},error:{alert;}});解决方案:1.加cache:false2.url加随机数正常代码:网上高人解读:cache的作用就是第一次请求完毕之后,如果再次去请求,可以直接从缓存里面读取而不是再到服务器端读取。

  7. 浅谈ajax上传文件属性contentType = false

    默认值为contentType="application/x-www-form-urlencoded".在默认情况下,内容编码类型满足大多数情况。在这里,我们主要谈谈contentType=false.在使用ajax上传文件时:在其中先封装了一个formData对象,然后使用post方法将文件传给服务器。说到这,我们发现在JQueryajax()方法中我们使contentType=false,这不是冲突了吗?这就是因为当我们在form标签中设置了enctype=“multipart/form-data”,

  8. 909422229_ajaxFileUpload上传文件

    ajaxFileUpload.js很多同名的,因为做出来一个很容易。我上github搜AjaxFileUpload出来很多类似js。ajaxFileUpload是一个异步上传文件的jQuery插件传一个不知道什么版本的上来,以后不用到处找了。语法:$.ajaxFileUploadoptions参数说明:1、url上传处理程序地址。2,fileElementId需要上传的文件域的ID,即的ID。3,secureuri是否启用安全提交,默认为false。4,dataType服务器返回的数据类型。6,error

  9. AJAX-Cache:一款好用的Ajax缓存插件

    原文链接AJAX-Cache是什么Ajax是前端开发必不可少的数据获取手段,在频繁的异步请求业务中,我们往往需要利用“缓存”提升界面响应速度,减少网络资源占用。AJAX-Cache是一款jQuery缓存插件,可以为$.ajax()方法扩展缓存功能。

  10. jsf – Ajax update/render在已渲染属性的组件上不起作用

    我试图ajax更新一个有条件渲染的组件。我可以确保#{user}实际上是可用的。这是怎么引起的,我该如何解决呢?必须始终在ajax可以重新呈现之前呈现组件。Ajax正在使用JavaScriptdocument.getElementById()来查找需要更新的组件。但是如果JSF没有将组件放在第一位,那么JavaScript找不到要更新的内容。解决方案是简单地引用总是渲染的父组件。

返回
顶部