1

こんにちは、私はextjs 4を初めて使用します。ツリーのドラッグドロップに問題があります。ドラッグとドロップでは、リーフがフォルダーに変更され、リーフがドロップノードの親に変更されるリーフにノードがドロップされます。

私のコードの下

// Go ahead and create the TreePanel now so that we can use it below
var treePanel = Ext.create('Ext.tree.Panel', {
    id: 'tree-panel',
    title: 'Taxonomy',
    region: 'west',
    collapsible: true,
    split: true,
    multiSelect: true,
    height: '100%',
    width: '20%',
    minWidth: 100,
    rootVisible: false,
    autoScroll: true,
    store: store,
    viewConfig: {
        allowCopy: true,


        plugins: {
            ptype: 'treeviewdragdrop',
            appendOnly: true,
            ddGroup: 'selDD'
        },

        listeners: {
            beforedrop: function (node, data, overModel, dropPos, opts) {
                nodeval = data.records[0].data.text;
                //parent  = overModel.node.parentNode.id;
                this.droppedRecords = data.records;
                data.records = [];
            },
            drop: function (node, data, overModel, dropPos, opts) {
                var str = '';
                Ext.iterate(this.droppedRecords, function (record, node, data, dropPosition, dropFunction, parentNode) {
                    //  str += record.get('Patent_number') + ' (id = ' + record.get('Tech1') + ') dropped on ' +overModel.data.text + 'with id'+overModel.data.id+ '\n';
                    Ext.MessageBox.show({
                        title: 'Copy?,Drag/drop?',
                        msg: 'Do you wish to copy (or) drag/drop this node?',
                        buttons: {
                            ok: 'Copy',
                            no: 'Drag/drop',
                            cancel: 'Cancel'
                        },
                        buttonText: {
                            yes: "Copy",
                            no: "Drag/drop",
                            cancel: "Cancel"

                        },
                        fn: function (btn, text) {
                            if (btn == 'no') {
                                Ext.Ajax.request({
                                    url: 'json/dragedrop.php',
                                    method: "GET",
                                    params: {
                                        idFrom: treeID,
                                        idTo: overModel.data.id,
                                        taxo_id: '<?php echo $taxe_id;?>'
                                        //fromtext: data.records[0].data.text 
                                        //parentid:overModel.node.parentNode.id

                                    },
                                    success: function (response) {
                                        store.load();
                                    }
                                });

しかし、上記のコードは機能しておらず、ドラッグノードがリーフにドロップされず、赤いマークが表示されています。

提案と参照コードを事前に感謝してください

4

1 に答える 1

0

これは正解ではないと思いますが、これはこの質問の代替ロジックです

プラグインで指定さappendOnly:false, れたdroped node parentものはhover node、その時点でドロップされたノードhover nodeに変更されますparent

たまにしか使わないと思います

于 2013-03-15T08:09:59.497 に答える