EXTJS中的store获取额外的值

来源:互联网 发布:宇宙大小的相关数据 编辑:程序博客网 时间:2024/04/16 17:12
众所周知,ExtJS GridPanel 查询数据最常用的方法是使用 Store 的 load 函数.

 

     使用 store.load 函数返回值类型为 boolean, 单单一个 boolean 是无法满足我们的需求的,如果 load 调用后台方法没有有异常并且有数据的话那还好办, 如果有异常我们需要提示用户有异常, 如果没有数据返回我们也需要提示用户没有找到数据, 而这些从数据返回的信息我们都需要在前台显示.

 

      ExtJS 中可以看到 load 函数提供了有三个参数的回调函数,但是没有类似 form 的 action.result 的参数可以取得后台传来的信息

 

[xhtml] view plaincopyprint?
  1. callback : Function  
  2. A function to be called after the Records have been loaded. The callback is called after the load event is fired, and is passed the following arguments:  
  3.   
  4. r : Ext.data.Record[] An Array of Records loaded.  
  5. options : Options object from the load call.  
  6. success : Boolean success indicator.  

 

      要说还是 firefox 好, 通过 firebug 调试可以发现在 this.reader.jsonData 中包含了后台的值,比如后台将信息保存在 message 变量中, 就可以通过 this.reader.jsonData.message 取得值, 现将解决代码贴上

 

[javascript] view plaincopyprint?
  1. this.getStore().load({  
  2.             callback:function(r,options,success){  
  3.                 if(success == false) {  
  4.                     Ext.Msg.alert(msg_information,this.reader.jsonData.message);  
  5.                 } else {  
  6.                     if(r.length == 0) {  
  7.                         Ext.Msg.alert(msg_information,msg_nodata_found);  
  8.                     }  
  9.                 }  
  10.             }  
  11.         });   

原创粉丝点击