0

我目前正在使用图表功能。我们需要将形状放入其他形状中以满足我们的要求。因此,当我们将一个形状拖放到另一个形状中时,我们需要访问父形状节点的数据。我花了几个小时来解决这个问题,但我无法找到令人满意的答案。你能帮我解决这个问题吗?

当我将对象放在图表上时,我使用“ nodeondrop & nodecollectionchanged ”。在更改 Rectangle 的大小时,使用“ nodeSizeChanging ”。触发动作时,不显示超级节点或子节点的详细信息。

那么如何在触发任何事件时获取父子形状的详细信息?

矩形形状

4

1 回答 1

0

我们添加了示例链接和视频链接来演示如何获取放置的节点目标元素。我们可以使用 drop 事件获取目标节点(当一个节点被拖放到另一个节点上时将触发该事件)。只有在启用 NodeConstraints AllowDrop 时才会触发 drop 事件。在 drop 事件中,我们可以获取目标节点,如果需要,我们可以将目标节点 ID 存储到源节点的 addinfo 属性中(addinfo 属性用于存储节点的自定义信息)。请参阅下面的代码片段和示例以获取更多信息。

function getNodeDefaults(obj, diagram) {
            obj.style = { fill: '#357BD2', strokeColor: 'white' };
            //Set ports
            obj.ports = getPorts(obj);
            obj.constraints = ej.diagrams.NodeConstraints.Default | ej.diagrams.NodeConstraints.AllowDrop;
            return obj;
        }

function drop(args) {
            var diagram = document.getElementById("diagram").ej2_instances[0];
            diagram.selectedItems.nodes[0].addInfo = args.target.id;
            var res = args.target.id;
            if (args.target.addInfo) {
                res += "& Grand Parent ID is " + args.target.addInfo;
            }
            alert("Parent ID is " + res);
        }

示例链接:https ://www.syncfusion.com/downloads/support/directtrac/general/ze/Drag-Drop-1203171661

视频链接:https ://www.syncfusion.com/downloads/support/directtrac/general/ze/forums1707332094721080

于 2021-11-29T13:22:39.907 回答