将 CSV 上传浏览按钮添加到 Ext.Action [英] Adding CSV upload browse button to Ext.Action

查看:13
本文介绍了将 CSV 上传浏览按钮添加到 Ext.Action的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在 GeoExt Map App 上创建 CSV 文件上传.我需要将上传功能放在 Ext.Action 中,以便我可以将它添加到 GeoExt 面板的工具栏.我正在尝试实现这个 example.这是我的代码,

I am trying to create a CSV File upload on GeoExt Map App. I need to place the upload function within the Ext.Action, so that I can add it to the toolbar of the GeoExt Panel. I am trying to implement this example. Here is my code,

    action = new Ext.Action({
    text: "Upload Excel",
    control: Ext.create('Ext.form.Panel', {
        title: 'Upload a CSV File',
        width: 400,
        bodyPadding: 10,
        frame: true,
        renderTo: Ext.getBody(),
        items: [{
            xtype: 'filefield',
            name: 'csv',
            fieldLabel: 'CSV Upload',
            labelWidth: 50,
            msgTarget: 'side',
            allowBlank: false,
            buttonText: 'Select CSV File'
        }],

        buttons: [{
            text: 'Upload',
            handler: function () {
                var form = this.up('form')
                    .getForm();
                if (form.isValid()) {
                    form.submit({
                        url: 'file-upload.py',
                        waitMsg: 'Uploading the CSV File...',
                        success: function (fp, o) {
                            Ext.Msg.alert('Success', 'Your csv file "' + o.result.file + '" has been uploaded.');
                        }
                    });
                }
            }
        }]
    }),
    map: map,
    // button options
    tooltip: "Upload CSV File",
    // check item options
    group: "newTool"
});
actions["upCSV"] = action;
toolbarItems.push(new Ext.button.Button(action));

Firebug 一直给我这个错误,

Firebug keeps giving me this error,

类型错误:b[d.xtype ||e] 不是构造函数

我是否在 Ext.Action 中错误地声明了函数?

Am I declaring the function incorrectly within the Ext.Action?

推荐答案

你不能直接将 action 推入 toolbar 因为 Ext.Action 不是 Ext.Component 的类型.Ext.Action 基本上是一种创建可以多次重用的抽象层的方法.这里需要进行以下操作:

You can't directly push the action into a toolbar since an Ext.Action is not a type of Ext.Component. An Ext.Action is basically a means of creating an abstraction layer which can be reused multiple times. Here you need to do the following:

toolbarItems.push(new Ext.button.Button(action));

来自文档:

操作让您共享处理程序、配置选项和 UI 更新跨任何支持 Action 接口的组件(主要是Ext.toolbar.Toolbar、Ext.button.Button 和 Ext.menu.Menu 组件)

Actions let you share handlers, configuration options and UI updates across any components that support the Action interface (primarily Ext.toolbar.Toolbar, Ext.button.Button and Ext.menu.Menu components)

这篇关于将 CSV 上传浏览按钮添加到 Ext.Action的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆