ICEfaces
  1. ICEfaces
  2. ICE-3219

the scrollbar for scrollable dataTable does not render properly in Firefox 3

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.7.1
    • Fix Version/s: 1.7.2
    • Component/s: ICE-Components
    • Labels:
      None
    • Environment:
      Firefox 3

      Description

      The scrollbar is included inside the last column, rather than beside to it.
      1. ScrollTableTest.rar
        30 kB
        Lele Man
      1. screenshot-1.jpg
        76 kB
      2. screenshot-2.jpg
        89 kB
      3. screenshot-3.jpg
        86 kB

        Activity

        Hide
        yip.ng added a comment -

        This problem is not caused by any bug in the renderer, but rather by how the browser renders the scrollbar. Firefox 3 seems to have changed from rendering the scrollbar beside a div to on top of a div. Opera has the same behavior. See ICE-2787. Firefox 2 and IE both render the scrollbar beside the div.

        Changing the renderer will also cause regressions for ICE-2417 and ICE-2654.

        All of these JIRA cases are a result of the fact that there is no way to tell for sure whether a scrollbar will be rendered, how it will be rendered, and what the exact pixel width of the scrollbar is. It all depends on the browser and the computed width and height of the div.

        The only fix I know of that works for all of IE, Opera, FF2 and FF3 is to specify a width for the data table:

        <ice:dataTable ... width="193" ...>

        See screenshot-1 for the result.

        Show
        yip.ng added a comment - This problem is not caused by any bug in the renderer, but rather by how the browser renders the scrollbar. Firefox 3 seems to have changed from rendering the scrollbar beside a div to on top of a div. Opera has the same behavior. See ICE-2787 . Firefox 2 and IE both render the scrollbar beside the div. Changing the renderer will also cause regressions for ICE-2417 and ICE-2654 . All of these JIRA cases are a result of the fact that there is no way to tell for sure whether a scrollbar will be rendered, how it will be rendered, and what the exact pixel width of the scrollbar is. It all depends on the browser and the computed width and height of the div. The only fix I know of that works for all of IE, Opera, FF2 and FF3 is to specify a width for the data table: <ice:dataTable ... width="193" ...> See screenshot-1 for the result.
        Hide
        Lele Man added a comment -

        The solution that was given works fine on firefox 3 but only if you have a data table with enough rows to have a scroll bar. If there aren't, the data table will still be rendered wrong (a white space will be rendered on the right side of the table).

        See screenshot and the source code of an example in the following post: http://www.icefaces.org/JForum/posts/list/8808.page#37313

        Show
        Lele Man added a comment - The solution that was given works fine on firefox 3 but only if you have a data table with enough rows to have a scroll bar. If there aren't, the data table will still be rendered wrong (a white space will be rendered on the right side of the table). See screenshot and the source code of an example in the following post: http://www.icefaces.org/JForum/posts/list/8808.page#37313
        Hide
        yip.ng added a comment -

        Changed to calculate the spacer header width dynamically on the client side. If no scrollbar is rendered by browser, width will be 0; if browser renders scrollbar, width will be same as width of scrollbar.

        See screenshot-2 and screenshot-3.

        Show
        yip.ng added a comment - Changed to calculate the spacer header width dynamically on the client side. If no scrollbar is rendered by browser, width will be 0; if browser renders scrollbar, width will be same as width of scrollbar. See screenshot-2 and screenshot-3.
        Hide
        Lele Man added a comment -

        I have downloaded the latest revision from the svn repository (revision 17609) and tried it, especially the bug reported for the version 1.7.1 (issue 3219).

        I realized that if the datatable does not has a header facet with a column group and a header row it works fine, but if the datatable has a header facet with a column group with a header row (or more) it still not working.
        It doesn't matter the complex of the header facet. If it could have several header rows containing columns with colspan and rowspan higher than 1 or just one header row containing columns with colspan and rowspan 1, and it doesn't work.

        I have attached a small example that shows the problem (the libs aren't in the attach, must be compiled (revision 17609)).

        Show
        Lele Man added a comment - I have downloaded the latest revision from the svn repository (revision 17609) and tried it, especially the bug reported for the version 1.7.1 (issue 3219). I realized that if the datatable does not has a header facet with a column group and a header row it works fine, but if the datatable has a header facet with a column group with a header row (or more) it still not working. It doesn't matter the complex of the header facet. If it could have several header rows containing columns with colspan and rowspan higher than 1 or just one header row containing columns with colspan and rowspan 1, and it doesn't work. I have attached a small example that shows the problem (the libs aren't in the attach, must be compiled (revision 17609)).
        Hide
        Lele Man added a comment -

        Example project showing the bug still doesn't work

        Show
        Lele Man added a comment - Example project showing the bug still doesn't work
        Hide
        Krashan Brahmanjara added a comment -

        That problem exist also in IE6 because tables inserted in div's doesn't correct fill full div area and dinamic javascript function also doesn't correct resize that tables. Patch was submitted in attachment to ICE-3515

        You can try this patch.

        Show
        Krashan Brahmanjara added a comment - That problem exist also in IE6 because tables inserted in div's doesn't correct fill full div area and dinamic javascript function also doesn't correct resize that tables. Patch was submitted in attachment to ICE-3515 You can try this patch.

          People

          • Assignee:
            Unassigned
            Reporter:
            Jacky Lee
          • Votes:
            7 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: