ICEfaces
  1. ICEfaces
  2. ICE-7245

ace:DataTable Headers Travel Over Page BG in IE7

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.1-Beta
    • Fix Version/s: 2.1-Beta2, 3.0
    • Component/s: ACE-Components
    • Labels:
      None
    • Environment:
      Williams POC, IE7
    • Affects:
      Documentation (User Guide, Ref. Guide, etc.), Compatibility/Configuration

      Description

      This bug is a result of absolutely positioned elements in the header being contained due to the TH having position:relative. It is related to the hasLayout bug quintessential to the IE 7 experience. Using overflow:hidden, to force hasLayout or obscure the rendering error was unsuccesful.

        Issue Links

          Activity

          Hide
          Brad Kroeger added a comment -

          I tried adding overflow:auto; zoom:1; to the style attribute of ace:datatable and it is not fixing the issue.

          Show
          Brad Kroeger added a comment - I tried adding overflow:auto; zoom:1; to the style attribute of ace:datatable and it is not fixing the issue.
          Hide
          Nils Lundquist added a comment -

          This is a problem with every scrollable container for any ace:dataTable in IE7. Zoom must be applied to the container with the scrollbar- not simply wrapping it. No change to the table would fix the issue other than complete header redesign, without using positioning, which has been necessary to enable many of the layouts requested.

          The issue must be fixed at this point by correct styling of the scrollable container.

          Show
          Nils Lundquist added a comment - This is a problem with every scrollable container for any ace:dataTable in IE7. Zoom must be applied to the container with the scrollbar- not simply wrapping it. No change to the table would fix the issue other than complete header redesign, without using positioning, which has been necessary to enable many of the layouts requested. The issue must be fixed at this point by correct styling of the scrollable container.
          Hide
          Brad Kroeger added a comment -

          Adding the recommended fix to the issue:

          The fix is the same everywhere. Find some notable attribute of the element with the scrollbar- horizontal or vertical, and use that, or give it an ID and write an in page css rule that adds zoom:1. If the zoom 1 is placed correctly, all of the header + scrolling rendering issues are corrected.

          If you knew where the tables were going to be scrolled you could add a more general rule to a app-wide css doc.

          Show
          Brad Kroeger added a comment - Adding the recommended fix to the issue: The fix is the same everywhere. Find some notable attribute of the element with the scrollbar- horizontal or vertical, and use that, or give it an ID and write an in page css rule that adds zoom:1. If the zoom 1 is placed correctly, all of the header + scrolling rendering issues are corrected. If you knew where the tables were going to be scrolled you could add a more general rule to a app-wide css doc.
          Hide
          Nils Lundquist added a comment - - edited

          It turns out after more testing that zoom:1 is not sufficient to fix this bug, though it does change the behavior.

          The proper fix is to add position:relative to the container. In the case of screen2.xhtml to the div .screen2DataTable.

          For every app that seeks to be IE7 compat, if the table is designed to overgrow its parent, that parent should have position relative set.

          Ex.
          <style type="text/css">
          .screen2DataTable

          { position:relative; }

          </style>
          <ace:container styleClass="screen2DataTable" ...

          or more intelligently styling by adding a "scrollable fix rule" to some global css file and ...

          .ie7OverflowFix

          { position:relative; }

          <ace:container styleClass="ie7OverflowFix" style="overflow:auto; width:x; height:x;">
          <ace:datatable ...

          Show
          Nils Lundquist added a comment - - edited It turns out after more testing that zoom:1 is not sufficient to fix this bug, though it does change the behavior. The proper fix is to add position:relative to the container. In the case of screen2.xhtml to the div .screen2DataTable. For every app that seeks to be IE7 compat, if the table is designed to overgrow its parent, that parent should have position relative set. Ex. <style type="text/css"> .screen2DataTable { position:relative; } </style> <ace:container styleClass="screen2DataTable" ... or more intelligently styling by adding a "scrollable fix rule" to some global css file and ... .ie7OverflowFix { position:relative; } <ace:container styleClass="ie7OverflowFix" style="overflow:auto; width:x; height:x;"> <ace:datatable ...
          Hide
          Ken Fyten added a comment -

          Need to document this technique in the Wiki.

          Show
          Ken Fyten added a comment - Need to document this technique in the Wiki.

            People

            • Assignee:
              Brad Kroeger
              Reporter:
              Nils Lundquist
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: