ExtJS中Ext.Ajax.request与form1.getForm().submit的基本区别

相同点:都属于Ajax提交方式!

不同点:Ext.Ajax.request是Ext.data.connection的一个实例

form1.getForm().submit是BasicForm的一个实现方式

使用上的区别:

1.form1.getForm().submit常用在表单提交的时候,就是说要提交页面数据,比如新增和修改数据页面

2.Ext.Ajax.request常用在根据参数提交的时候,比如删除,我们把页面选中的ID进行遍历,封装在一个Array中,作为一个参数做Ajax的提交

例子:

首先是form1.getForm().submit的例子:

function formSubmit(){
   if (form1.getForm().isValid()) {
    form1.getForm().submit({
     waitTitle : ‘提示‘,//标题
     waitMsg : ‘正在提交数据请稍后...‘,//提示信息
     url : ‘eidtBooktype.action‘,
     method : ‘post‘,
     params : ‘booktype‘,
     success : function(form, action) {
      var flag=action.result.msg;
      window.returnValue=‘SUCC‘; 
      Ext.Msg.alert(‘提示‘,flag,function(){
       window.close();
      });
     },
     failure : function(form,action) {
      var flag=action.result.msg;
      Ext.Msg.alert(‘操作‘, flag);
     }
    });
   }
}

其次是一个Ext.Ajax.request的例子:

Ext.Ajax.request({
         url : ‘deleteBooktypes.action‘,
        method : ‘post‘,
        params : {delids:deleteids.toString()},
        success : function(form,action) {
         //alert(response.responseText); //返回的json值的字符串
         var respText = Ext.util.JSON.decode(form.responseText); //吧字符串变为json格式
         var msg=respText.msg;
         Ext.MessageBox.alert(‘提示‘,msg,function(){
          bookTypeStore.reload();
         });
        },
        failure : function(response,options) {
         var respText = Ext.util.JSON.decode(response.responseText); //吧字符串变为json格式
         var msg=respText.msg;
         Ext.MessageBox.alert(‘提示‘,msg,function(){
          bookTypeStore.reload();
         });
        }
       });

使用是的区别:

最明显就是success和failure时候function的参数啦!

Ext.Ajax.request的function(response,options),option非常有用,用response.responseText获得返回参数,注意这个地方的response参数可以换成action

form1.getForm().submit的function(form, action),action很有用,用action.result.msg获得返回值

还有个最明显区别是Ext.Ajax.request不可以用waitMsg,真是Ext的一个败笔呀!!!

还有一个最值得注意的地方:

form1.getForm().submit 返回的值中必须包含success:true或者是failue:true

这个是最终判断执行是否成功的关键!!!

而Ext.Ajax.request则不需要该参数,只要是不抛出异常,肯定是success成功的!!!

时间: 2024-10-03 23:29:17

ExtJS中Ext.Ajax.request与form1.getForm().submit的基本区别的相关文章

Ext.Ajax.request和formPanel.getForm().submit()两种提交方法的异同:

1. 相同点: a) 都是使用异步提交的方式: b) 默认都是使用POST方式来提交数据: 2. 不同点: a) Request方法不可以使用waitMsg属性来设置在等待响应过程中显示的信息,而submit方法提交时这个设置是可用的(可以看到效果,而前面说的不可用是指设置了看不到效果): b) Request方法必须将要提交的参数手动组织好然后作为名为params的参数的值才能提交到服务器,而submit方法会将表单内所有input元素组织好提交: c)  Request方法提交时,回调函数中

ExtJs 4中 Ext.Ajax.request提交实现waitMsg等待提示效果

//submitForm为form表单 var myMask = new Ext.LoadMask(Ext.getBody(),{msg:"请稍等,正在导入..."}); myMask.show(); Ext.Ajax.request({ url:"uploadAction", method:"POST", params:{ id:id }, success:function(){ if (myMask != undefined){ myMask

ExtJS Ext.Ajax.request最好设为同步

ExtJS 中Ext.Ajax.request最好设为同步,即async: false,因为如果Ajax后面需要用到Ajax更新的数据的话,设置同步,后面才能用到最新的数据. function GetPatientOrder() { Ext.Ajax.request({ url: '/CommonAshx/Order.ashx', method: 'get', async: false, params: { gurd: "GetOrder", patientCardNo: Ext.ge

[转] form.getForm().submit的用法及Ext.Ajax.request的小小区别

原文地址:http://blog.csdn.net/hongleidy5000/article/details/7329325 [javascript] view plain copy if (!formDetail.getForm().isValid()) { msg("警告", "请填写必要信息项!"); return; } else { try { formDetail.getForm().submit({ url: '../ashx/userLogin.as

extjs Ext.Ajax.request 同步和异步

ext3.x 不支持ajax的同步请求,ext4就开始支持. 1 Ext.Ajax.request({ 2 url : '', 3 sync:true, 4 params : { 5 name : text.getValue() 6 }, 7 success : function(response, options) { 8 var responseArray = Ext.util.JSON.decode(response.responseText); 9 resultValue=respons

extJS 中 ext.data 介绍

ext.data 最主要的功能是获取和组织数据结构,并和特定控件联系起来,于是,Ext.data成了数据的来源,负责显示数据. Ext.data在命名空间中定义了一系列store.reader和proxy.Grid和ComboxBox都是以Ext.data为媒介获取数据的,它包含异步加载.类型转换.分页等功能. Ext.data默认支持Array.JSON.XML等数据格式,可以通过Memory.HTTP.ScriptTag等方式获得这些格式的数据.如果要实现新的协议和新的数据结构,只需要扩展r

Ext.Ajax.request同步请求

导读: ajax分为2种,一种是同步,一种是异步同步:代码执行完了之后才执行后面的代码 异步:代码刚执行,后面的代码就马上接着执行了,不管前面的代码是否执行完异步的情况下,要获得返回信息,就需要在异步执行完之后写代码,也就是在success里面写代码,或者success里面调用其他的函数. 在Ext3.0以上的版本里面 ,Ext.Ajax.request是异步的,到Ext 4.0以后才支持同步请求的属性(没试过) -----------------------------------------

extjs中Ext.ns('xxx')中的几个问题

当使用 com.bitc.xmis.ExcelImportWin =  Ext.extend(Ext.Window, {}) 新建一个表单或者窗口时,后面应该加上 com.bitc.xmis.ExcelImportWin.superclass.initComponent.call(this); Ext.extend()函数提供了直接访问父类构造函数的途径,通过 SubClass.superclass.constructor.call(this);就可以直接调用父类的构造函数,这个函数的第一个参数

Extjs4.0以上版本 Ext.Ajax.request请求的返回问题

Ext.Ajax.request({ url: posturl, method: 'POST', params: { ClassName: 'XXXX', FuncName: 'XXXX', param: param }, success: function (response) { var text = response.responseText; if (text == "false") { Ext.MessageBox.hide(); Ext.MessageBox.alert(&