Ext this.getView(...).saveDocumentAs is not a function

一、前言

  Ext 导出数据,根据官网的代码,报:this.getView(...).saveDocumentAs is not a function 的问题。

  参考:Ext Export not working

  官网代码:

  

二、解决方案

  主要的原因还是以为找不到 Grid 的问题。我参考中使用的是 Ext.ComponentQuery.query('grid')[0]; 来寻找 Grid ,如果 一个 view 中有两个 grid 我们需要找,看看是那个 grid,不同通用。所以我使用的方式是通过传入的 btn 来找最近的 grid。完美解决还通用

    exportTo: function (btn) {

        var cfg = Ext.merge({
            title: 'Grid export demo',
            fileName: 'GridExport' + '.' + (btn.cfg.ext || btn.cfg.type)
        }, btn.cfg);

        //参考的
        var p = Ext.ComponentQuery.query('grid')[0];
        p.saveDocumentAs(cfg)//如果一个view中有两个 grid 不适用

        //自己推到的
        this.getView().query('grid')[0].saveDocumentAs(cfg);//如果一个view中有两个 grid 不适用

        //最后使用
        btn.up('grid').saveDocumentAs(cfg);//通用
    },

 

posted @ 2019-07-17 18:05  周兴兴  阅读(965)  评论(0编辑  收藏  举报