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
    Icon for Microsoft Employee rankMicrosoft 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)