Join us for an expert-led overview of the tools and concepts you'll need to pass exam PL-300. The first session starts on June 11th. See you there!
Get registeredPower BI is turning 10! Let’s celebrate together with dataviz contests, interactive sessions, and giveaways. Register now.
Hi there,
I have successfully built a custom visual using the dataviewmappings "matrix" and everything is working fine except the interaction.
For example, my data is structure as
2013
- Jan
- Feb
- Mar
2014
- Jan
- Feb
- Mar
When I select the child "Jan" for year 2013, the interaction is only for "Jan" but not for 2013 and it is showing Jan for both 2013 and 2014. I want the year to be filtered based on the child node selected.
I have got the selectionid for all the nodes but they are not linked in a hierarchy. They are currently independent to each other.
I have build the selectionId as below. This gives the selectionId for the each node
//obj is the node in the hierarchy var selectionId: ISelectionId = host.createSelectionIdBuilder() .withMatrixNode(obj, levels) .createSelectionId();
I have built the interaction as below
if (this.host.allowInteractions) { const isCtrlPressed: boolean = (d3.event as MouseEvent).ctrlKey; //d3.select(nodes[i]).attr('fill-opacity', 1); this.selectionManager .select(d.selectionId, isCtrlPressed) .then((ids: ISelectionId[]) => { if (this.selectionManager.hasSelection() && !isCtrlPressed) { bars.attr('fill-opacity', 0.5); }; d3.select(nodes[i]).attr('fill-opacity', 1); }); (<Event>d3.event).stopPropagation(); }
Thanks
Nishant
Solved! Go to Solution.
@jprmsn mate, I gave up on this issue about an year ago, assuming there is some bug. I can't believe this was so simple. Thanks a lot. Made my day
I think the issue is that the samples given for .withMatrixNode only set the selection to the particular row and not the full context including parent rows.
Anyone know how to do this?
The answer is to do .withMatrixNode(...).withMatrixNode(...), etc.
A call for the row and a call for each parent, followed by createSelectionId will work.
@jprmsn mate, I gave up on this issue about an year ago, assuming there is some bug. I can't believe this was so simple. Thanks a lot. Made my day
Great. Appreciate it if you could mark it as the solution.
John