dwrProxy(自己的)

  1. Ext.data.DWRProxy = function(dwrCall, pagingAndSort){
  2.   Ext.data.DWRProxy.superclass.constructor.call(this);
  3.   this.dwrCall = dwrCall;
  4.   //this.args = args;
  5.     this.pagingAndSort = (pagingAndSort!=undefined ? pagingAndSort : true);
  6. };
  7. var tempParames=new Object();
  8. Ext.extend(Ext.data.DWRProxy, Ext.data.DataProxy, {
  9.   
  10.   load : function(params, reader, callback, scope, arg) {
  11.     if(this.fireEvent("beforeload"this, params) !== false) {
  12.       var delegate = this.loadResponse.createDelegate(this, [reader, callback, scope, arg], 1);
  13.       var callParams = new Array();
  14.       for(var name in arg.params )
  15.       {
  16.          tempParames[name]=arg.params[name]; 
  17.       }
  18.       callParams.push(tempParames);
  19.       callParams.push(delegate);
  20.       this.dwrCall.apply(this, callParams);
  21.     } else {
  22.       callback.call(scope || thisnull, arg, false);
  23.     }
  24.   },
  25.   loadResponse : function(listRange, reader, callback, scope, arg) {
  26.     var result;
  27.     try {
  28.       result = reader.read(listRange);
  29.     } catch(e) {
  30.       this.fireEvent("loadexception"thisnull, response, e);
  31.       callback.call(scope, null, arg, false);
  32.       return;
  33.     }
  34.     callback.call(scope, result, arg, true);
  35.   },
  36.   update : function(dataSet){},
  37.   updateResponse : function(dataSet)
  38.   {}
  39. });
  40. Ext.data.ListRangeReader = function(meta, recordType){
  41.     Ext.data.ListRangeReader.superclass.constructor.call(this, meta, recordType);
  42.     this.recordType = recordType;
  43. };
  44. Ext.extend(Ext.data.ListRangeReader, Ext.data.DataReader, {
  45.   getJsonAccessor: function(){
  46.       var re = /[/[/.]/;
  47.       return function(expr) {
  48.           try {
  49.               return(re.test(expr))
  50.                   ? new Function("obj""return obj." + expr)
  51.                   : function(obj){
  52.                       return obj[expr];
  53.                   };
  54.           } catch(e){}
  55.           return Ext.emptyFn;
  56.       };
  57.   }(),
  58.     
  59.     read : function(o){
  60.         var recordType = this.recordType, fields = recordType.prototype.fields;
  61.         //Generate extraction functions for the totalProperty, the root, the id, and for each field
  62.         if (!this.ef) {
  63.             if(this.meta.totalProperty) {
  64.                 this.getTotal = this.getJsonAccessor(this.meta.totalProperty);
  65.             }
  66.         
  67.             if(this.meta.successProperty) {
  68.                 this.getSuccess = this.getJsonAccessor(this.meta.successProperty);
  69.             }
  70.             if (this.meta.id) {
  71.                 var g = this.getJsonAccessor(this.meta.id);
  72.                 this.getId = function(rec) {
  73.                     var r = g(rec);
  74.                     return (r === undefined || r === "") ? null : r;
  75.                 };
  76.             } else {
  77.                 this.getId = function(){return null;};
  78.             }
  79.             this.ef = [];
  80.             for(var i = 0; i < fields.length; i++){
  81.                 f = fields.items[i];
  82.                 var map = (f.mapping !== undefined && f.mapping !== null) ? f.mapping : f.name;
  83.                 this.ef[i] = this.getJsonAccessor(map);
  84.             }
  85.         }
  86.     var records = [];
  87.     var root = o.data, c = root.length, totalRecords = c, success = true;
  88.     if(this.meta.totalProperty){
  89.         var v = parseInt(this.getTotal(o), 10);
  90.             if(!isNaN(v)){
  91.                 totalRecords = v;
  92.             }
  93.         }
  94.         if(this.meta.successProperty){
  95.             var v = this.getSuccess(o);
  96.             if(v === false || v === 'false'){
  97.                 success = false;
  98.             }
  99.         }
  100.         for(var i = 0; i < c; i++){
  101.         var n = root[i];
  102.       var values = {};
  103.       var id = this.getId(n);
  104.       for(var j = 0; j < fields.length; j++){
  105.                 f = fields.items[j];
  106.         var v = this.ef[j](n);                      
  107.         values[f.name] = f.convert((v !== undefined) ? v : f.defaultValue);
  108.       }
  109.       var record = new recordType(values, id);
  110.       records[i] = record;
  111.     }
  112.     return {
  113.        success : success,
  114.        records : records,
  115.        totalRecords : totalRecords
  116.     };
  117.   }
  118. });

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值