Forum Discussion

teroman's avatar
teroman
Frequent Visitor
8 years ago

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-msft's avatar
    v-ljerr-msft
    Microsoft 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

    • teroman's avatar
      teroman
      Frequent 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();
              }
          });

       

  • Jiny's avatar
    Jiny
    Frequent 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)