如何使用 syncfusion 在图中获取父节点详细信息?

How to fetch parent node details in diagram using syncfusion?

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

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

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

我们添加了示例 link 和视频 link 来演示如何获取放置的节点目标元素。我们可以使用 drop 事件获取目标节点(当一个节点被放置在另一个节点上时将被触发)。 drop 事件只会在启用 NodeConstraints AllowDrop 时触发。在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);
        }

样本Link:https://www.syncfusion.com/downloads/support/directtrac/general/ze/Drag-Drop-1203171661

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