0

列を並べ替えるデフォルトの機能を保持し、列を 2 番目のグリッドにドロップして、最初のグリッドの列を含むリストを最後に作成する可能性を追加する必要があります。

明確になったことを願っています。

4

1 に答える 1

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]]);
    }

});
于 2013-04-19T12:33:38.887 に答える