ExtJS - 将列标题拖到其他网格

时间:2013-04-12 18:59:49

标签: extjs grid datagridcolumn

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

我希望已经清楚了。

1 个答案:

答案 0 :(得分: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]]);
    }

});