Forum Discussion

rkever's avatar
rkever
Regular Visitor
6 years ago
Solved

Embedded report datagrid row heights load with zero height

We have an embedded report inside a .net web app. The charts render fine on page load but the datagrid rows are not visible due to the fact their heights are rendered with zero height.  The grid loads fine in power bi and will also render fine if you change anything on the report (e.g. filter, sorting, etc.) that causes a DOM refresh of the datagrid.  Anyone have any idea why this would happen on first load with a embedded report?


  • Figured it out for those seeing the same issue.  The browser difference is just DOM render speed.  I'm using an MV* JS framework (aurelia) and using a show/hide binding that hides the DIV container that contains the iframe.  When the embedReport() method runs, I'm using on('rendered') event handler to show the div container with the iframe so we dont see the PBI loader since our site will be more than just PBI and isn't consistant with our styling.  So I just changed the show/hide functionality (which is using display:none) to opacity:0 for hide and opacity:1 to show and we're back in business. I'm assuming this is because the iframe contents need a visible element to render properly to the available dimentions which don't really exist when display:none is set.

5 Replies

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi rkever 

    The only time I have seen anything similar to this, is when the report accidentally gets saved with a selection/filter/slicer state that isn't valid in the context of the embedded session.

    After interactions - the filter/slicer context changes and everything 'appears' again.

    if you suspect its a render issue - it's worth testing in alternative browsers to rule out some DOM rendering glitches.

    • rkever's avatar
      rkever
      Regular Visitor

      Thanks Anonymous. I did try it on a couple of browsers and it only happens when it's embedded (safari, chrome, and Edge) and does not have this issue when viewing it on app.powerbi.com.  We'll see if it's something to do with some invalid state item.

    • rkever's avatar
      rkever
      Regular Visitor

      I decided to test it again and the datagrids do render properly on first load on Safari but not in Chrome or FF (we aren't setup for IE or Edge as we haven't added the JS polyfills).  Any reason why embeded angular UI would do this for embed only in Chrome/FF and not Safari??

       

      This is what we have set for the iframe with no additional config in the JS embedReport() method.

      <iframe src="_URL_" scrolling="no" allowfullscreen="true" style="width: 100%; height: 100%;"></iframe>

       

      • rkever's avatar
        rkever
        Regular Visitor

        Figured it out for those seeing the same issue.  The browser difference is just DOM render speed.  I'm using an MV* JS framework (aurelia) and using a show/hide binding that hides the DIV container that contains the iframe.  When the embedReport() method runs, I'm using on('rendered') event handler to show the div container with the iframe so we dont see the PBI loader since our site will be more than just PBI and isn't consistant with our styling.  So I just changed the show/hide functionality (which is using display:none) to opacity:0 for hide and opacity:1 to show and we're back in business. I'm assuming this is because the iframe contents need a visible element to render properly to the available dimentions which don't really exist when display:none is set.