cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Highlighted
Responsive Resident
Responsive Resident

SelectionID: MatrixNode - Selection based on hierarchy and not the node

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 

2 REPLIES 2
Highlighted
Regular Visitor

Re: SelectionID: MatrixNode - Selection based on hierarchy and not the node

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?

Highlighted
Regular Visitor

Re: SelectionID: MatrixNode - Selection based on hierarchy and not the node

The answer is to do .withMatrixNode(...).withMatrixNode(...), etc.

A call for the row and a call for each parent, followed by createSelectionId will work.

Helpful resources

Announcements
August 2020 Community Challenge: Can You Solve These?

August 2020 Community Challenge: Can You Solve These?

We're excited to announce our first cross-community 'Can You Solve These?' challenge!

July 2020 Community Highlights

July 2020 Community Highlights

Learn about the exciting things that happened in July.

Upcoming Events

Upcoming Events

Wondering what events you could join or have an event to promote yourself? Check out our Upcoming Events.

Get Ready for Power BI Dev Camp

Get Ready for Power BI Dev Camp

We are thrilled to announce we will begin running a monthly webinar series named Power BI Dev Camp.