Ext.form.Panel 上传文件,不依赖服务端的Json返回

在使用Extjs的表单控件Ext.form.Panel做文件上传时,发现success方法的回调必须依赖服务端返回,其基本结构是:{success:true}。

原先做好的上传程序为了满足界面控件的需要而去做变动,这种设计我认为是不够合理的。


如何不依赖服务端的Json返回,我的解决方案是:重写Ext.form.Action.Submit的handleResponse,控制返回对象的success属性。


       Ext.override(Ext.form.Action.Submit, {
           //保存原先的处理原型
           handleResponseV1: Ext.form.Action.Submit.prototype.handleResponse,
           //重写原有处理方式
           handleResponse: function (response) {
               try {
                   var base = this.handleResponseV1(response);
                   base.success = true;
                   return base;
               }
               catch (ex) { }
               return { success: false };
           }
       });





       //调用示例:调用方式不受影响


           new Ext.form.Panel({
               url: 'upload.ashx',
               items:
             [
                new Ext.form.field.File({
                    listeners: {
                        change: function () {
                            var frm = this.up("form");
                            frm.submit({
                                success: function (form, action) {
                                    //得到json对象
                                    var jsonData = Ext.decode(action.response.responseText);
                                    alert('上传成功');
                                }
                                , failure: function (form, action) {
                                    debugger;
                                    alert('上传失败');
                                }
                            })
                        }
                    }
                })
             ]
           }).render(Ext.getBody());

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值