Ext.ux.data.DwrProxy

/**
 *  DWR与EXTJS一同使用的PROXY
 */

Ext.namespace("Ext.ux.data");

Ext.ux.data.DwrProxy = function(config) {
	Ext.apply(this, config);
	Ext.applyIf(config, {
				url : "support.jsp"
			});
	Ext.ux.data.DwrProxy.superclass.constructor.call(this, config);
};

Ext.ux.data.DWRProxy = Ext.ux.data.DwrProxy;

Ext.extend(Ext.ux.data.DwrProxy, Ext.data.DataProxy, {

			//not use this property now.
			dwrKey : "dwrKey",
			dwrFun : undefined,
			//not use this property now
			dwrParams : [],
			doRequest : function(action, record, params, reader, cb, scope,
					options) {
				var root = this;
				var fun = this.dwrFun || this.api[action];
				var trans = {
					"params" : params || {},
					"request" : {
						"callback" : cb,
						"scope" : scope,
						"arg" : options
					},
					"reader" : reader
				};
				alert(params.jsonData);
				var args = [];
				// if(params.jsonData){
				// args.push(params.jsonData)
				// }
				args.push(this.createCallback(action, record, trans));
				fun.apply(window, args);
			},
			// private
			createCallback : function(action, record, trans) {
				return {
					// callback for dwr Ajax request
					callback : function(result) {
						if (action === Ext.data.Api.actions.read) {
							this.onRead(action, trans, result);
						} else {
							this.fireEvent("loadexception", this, trans, null,
									ex);
						}
					}.createDelegate(this),
					// dwr Ajax request error handler.
					errorHandler : function(message, ex) {
						Ext.Msg.alert("Error", message + "<br>" + ex);
						this.fireEvent("loadexception", this, trans, null, ex);
					}.createDelegate(this)
				}
			},

			onRead : function(action, trans, result) {
				var records;
				try {
					records = trans.reader.readRecords(result);
				} catch (ex) {
					alert(ex + "/n callback catch a exception!");
					this.fireEvent("loadexception", this, trans, null, ex);

					this.fireEvent('exception', this, 'response', action,
							trans, null, ex);
					trans.request.callback.call(trans.request.scope, null,
							trans.request.arg, false);
					return;
				}
				this.fireEvent("load", this, null, trans.request.arg);
				trans.request.callback.call(trans.request.scope, records,
						trans.request.arg, true);
			}
		});

/**
 *var store = new Ext.data.JsonStore({autoLoad:true,proxy:new Ext.ux.DwrProxy({
 *dwrFun:user.func
 *})});
*/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值