ExtJS教程----自定义下载组件

自定义下载组件

Ext.define('ExtJS5Example.view.FileDownloader', {
    extend: 'Ext.Component',
    alias: 'widget.FileDownloader',
    autoEl: {
        tag: 'iframe',
        cls: 'x-hidden',
        src: Ext.SSL_SECURE_URL
    },
    stateful: false,
    load: function (config) {
        var e = this.getEl();
        var location = config.url + (config.params ? '?' + Ext.urlEncode(config.params) : '');
        Ext.Msg.show({
            msg: '努力下载中,请等待...',
            progress: true,
            closable: false,
            wait: true,
            waitConfig: { interval: 200 }
        });
        // || Ext.isChrome
        if (Ext.isIE9 || Ext.isIE8 || Ext.isIE7) {
            e.dom.contentWindow.location.href = location;
            e.dom.onreadystatechange = function () {
                Ext.MessageBox.hide();
                if (e.dom.readyState == 'complete') {
                    if (e.dom.attachEvent) {
                        e.dom.attachEvent('onload', function () {
                            Ext.Msg.show({
                                title: 'Attachment missing',
                                msg: 'The document can not be found on the server.',
                                buttons: Ext.Msg.OK,
                                icon: Ext.MessageBox.ERROR
                            })
                        });
                    }
                }
            };
        } else {
            e.dom.async = false;
            e.dom.src = location;
            Ext.Msg.close();
            e.dom.load = function () {
                if (e.dom.contentDocument.body.childNodes[0].wholeText == '404') {
                    Ext.Msg.show({
                        title: 'Attachment missing',
                        msg: 'The document you are after can not be found on the server.',
                        buttons: Ext.Msg.OK,
                        icon: Ext.MessageBox.ERROR
                    })
                }
                if (e.dom.contentDocument.body.childNodes[0].wholeText == 'undefined') {
                    Ext.Msg.show({
                        title: 'Failed to download',
                        msg: 'The document you are after can not be downloaded.',
                        buttons: Ext.Msg.OK,
                        icon: Ext.MessageBox.ERROR
                    })
                }
            }
        }
    }
});

 2.引用: 

        var downloader = Ext.getCmp('FileDownloader')
        downloader.load({
            url: '/Student/StudentReportCard',
            waitMsg: '模板下载中...',
            params: { studentId: studentId },
            failure: function (response, options) {
                Ext.Msg.alert('提示', Ext.JSON.decode(response.responseText)["message"]);
            }
        });


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值