Forum Discussion
How to get slicer options with PowerBI client
Hi Grasmachien ,
Please review the following links, hope they can help you.
Power BI Embedded Tracking visual filters (slicers)
I have found a way to do that, not as beatiful as I want, but still a nice solution.
To those who are interested in this same case scenario, I have used PowerBI Javascript API, and with this API to get all pages (report.getPages()) and run it to find the active page (page.isActive), then I get all visuals (page.getVisuals()) and filter it by slicers (visual.type === 'slicer'), by there I get a list of all slicers in my page, to get values of filtered slicers I simply check if the slicer has filters (it is an array), and if it do, I add to an array to save it later.
Long story short :
User PowerBI Javascript API -> get all pages of report -> get active page -> get all visuals in page -> filter by slicer -> get all slicers that have been filtered -> get slicer state to know what have been done to this filter -> do whatever you need with it.
const isSlicer = visual => visual.type === 'slicer'; const isPageActive = page => page.isActive; ... let embeddedReport = powerbi.embed(dashboardContainer, config); embeddedReport.on('rendered', function (event) { embeddedReport.getPages().then(pages => { activePage = pages.filter(isPageActive)[0]; activePage.getVisuals().then(visuals => { slicers = visuals.filter(isSlicer); filteredSlicers = []; slicers.forEach(async slicer => { slicer.getSlicerState().then(slicerState => { if(slicerState.filters.length > 0) filteredSlicers.push(slicerState) }) }) }); }); ....
Best Regards
Hi Anonymous,
Thanks for your answer!
This explanation only shows the current applied filters.
Is there a way to get all the possible options (applied and non applied) that are available for a specific slicer?
For example: We have 3 slicers as dropdowns in our embedded report. The values of the these slicers are dependend on the main filter that is beind set on the report. So they are not always the same.
Is there a way to get all the options that these slicers display so that I can rerender them outside of the iframe in custom html/css?
- Anonymous2 years agoNot applicable
GrasmachienThis is possible using the `VisualDescriptor.exportData()` method, which gives you a list of up to 30,000 options.