关于Ext.Ajax.request的遮罩问题!

两种实现方法:

1. 为Ext.Ajax添加侦听事件
Ext.Ajax.on("beforerequest", function(){yourGird.loadMask.show();});
Ext.Ajax.on("requestcomplete", function(){yourGgird.loadMask.hide();});
Ext.Ajax.on("requestexception", function(){yourGird.loadMask.hide();});


2. 通过Ext.data.Connection实现
   1). 首先定义Ext.data.Connection,并添加监听事件:
  
   var conn = new Ext.data.Connection({
    listeners : {
     "beforerequest" : function(){yourGird.loadMask.show();},
     "requestcomplete" : function(){yourGird.loadMask.hide();},
     "requestexception" : function(){yourGird.loadMask.hide();}
    }
   });
   


   2). 使用时通过conn去执行ajax请求
  
   conn.request({
     url : yourUrl,
     params: { jsonData : Ext.util.JSON.encode(jsonArray) },
     success : function(result){
       var json_str = Ext.util.JSON.decode(result.responseText);
        if(!json_str.success){ .... }
        else { ..... } 
     },
     failure : function(){ ...... }
    })
   


上面的yourGird.loadMask是创建GridPanel时使用的遮罩,也可以使用以下方式创建一个遮罩:
var _loadMask = new Ext.LoadMask()


打完收工!!!

你可能感兴趣的:(Ajax,json,ext)