【问题标题】:ExtJS - Drag column header to other gridExtJS - 将列标题拖到其他网格
【发布时间】:2013-04-12 18:59:48
【问题描述】:

我需要保留重新排序列的默认功能并添加 可能将列放在第二个网格中,在最后一个列表中构建 与第一个网格的列。

我希望已经很清楚了。

【问题讨论】:

  • 你的问题不太清楚。展示你的尝试。
  • 我需要在另一个网格中创建一个 DropZone,它接收来自第一个网格的列标题的拖动,保留最后一个网格的默认重新排序列功能。我正在扩展 DropZone 并认为我走在正确的道路上。

标签: extjs grid datagridcolumn


【解决方案1】:

我解决了扩展 DropZone 的问题。该实现接收目标网格作为构造函数参数,并且这个位于源网格的 rbar(停靠控件)中。键将 ddGroup 设置为“header-dd-zone-”加上源网格的 id。我希望这很有用。

Ext.define('Crud.FilterDropZone', {
    extend: 'Ext.dd.DropZone'

    , constructor: function() {}

    , init: function (grid) {
        var me = this;

        if (grid.rendered) {
            me.grid = grid;
            me.ddGroup = 'header-dd-zone-' + grid.up('grid').id;
            grid.getView().on({
                render: function(v) {
                    me.view = v;
                    Crud.FilterDropZone.superclass.constructor.call(me, me.view.el);
                },
                single: true
            });
        } else {
            grid.on('render', me.init, me, {single: true});
        }
    }

    , getTargetFromEvent: function (e) {
        return {};
    }

    , onNodeDrop: function (nodeData, source, e, data) {
        var header = data.header
            , store = Ext.getCmp(e.target.id).getStore();

        //store.add(new store.RecordType({ property: header.text, value: '', reference: header.dataIndex}));
        store.add([[header.text, '', header.dataIndex]]);
    }

});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-01
    • 1970-01-01
    • 2017-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多