Forum Discussion
page.isActive doesn't update after calling setPage
Hi all,
I'm embedding a Power BI report and have a button that will set the active page. Later I query the active page, but the original page is still set as active. Note that I do fetch the pages again using getPages(), so I'd expect to get the current values.
Code sample is below, it's very simple so I don't think I'm doing anything wrong (but I might well be!)
Any help apreciated.
Colin
var pageCodeName = "..." //name from somewhere, it is valid var report = powerbi.embed(...);
//button calls this function setThePage(){ //this sets the active page, I can see it switch correctly report.setPage(pageCodeName); //some time later, ask which page is active window.setTimeout(function(){ report.getPages().then(function(pages){ for(var i=0; i<pages.length; i++){ if(pages[i].isActive){
//this alerts the original page name, not the currently active one alert(pages[i].displayName); } } }); }, 10000); }
4 Replies
- v-ljerr-msftMicrosoft Employee
Hi teroman,
Could you try using setActive() which makes the current page the active page of the report to see if it works in your scenario? :smileyhappy:
page.setActive();
Regards
- teromanFrequent Visitor
Nope, that doens't work either, Page1 still has isActive = true. :smileysad:
If I show the nav pane and switch pages by clicking then the isActive property doesn't change either. Seems not to work at all for me.
New code to switch pages:
report.getPages().then(function(pages){ var reqdPage = null; for(var i=0; i<pages.length; i++){ if(pages[i].name)===pageName){ reqdPage = pages[i]; break; } } if(reqdPage){ return reqdPage.setActive(); } });- v-ljerr-msftMicrosoft Employee
Hi teroman,
In this scenario, I would suggest you create a new issue on Microsoft/PowerBI-JavaScript Issues for better assistance. :smileyhappy:
Regards
- JinyFrequent Visitor
Please mark this post resolved
Resolution: (with the latest features in version 3.1.0 as of July 2023)
To set the input page as active
set_active_page(page_name)
Arguments:page_name (string): name of the page you want to set as active
Usage:
report.set_active_page(page_name)