ICEfaces
  1. ICEfaces
  2. ICE-10240

ace:dataTable - commandLinks not working in nested dataTable

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 4.0.BETA, EE-3.3.0.GA_P02, 4.0
    • Fix Version/s: EE-4.0.0.GA, EE-3.3.0.GA_P03, 4.1
    • Component/s: ACE-Components
    • Labels:
      None
    • Environment:
      All

      Description

      The application's setup is as follows:

      ace:dataTable -> ace:panelExpansion -> ace:dataTable -> ace:column -> h:commandLink

      When expanding a row and clicking the commandLink, the action is not fired. The only way that works is if you expand the row above the current row. This still leaves the first row links to not be click-able.

      This isn't an issue with the EE 3.3.0 P01 release. It is an issue with the P02 and with the 4.0.0 releases. Also if the commandLink is moved out of the nested dataTable, this issue is not seen so it seems to be specific to the nested table.

        Activity

        Hide
        Arran Mccullough added a comment -

        Attached test case that shows the issue.

        Steps:

        • Load welcomeICEfaces.jsf
        • Expand the first row, in the nested dataTable click on the Link links. No logs are shown in the server console.
        • Expand the second row and click the same links, logs are now shown.
        • Contract the first row and click the links in the second rows dataTable, no logs are seen now.
        Show
        Arran Mccullough added a comment - Attached test case that shows the issue. Steps: Load welcomeICEfaces.jsf Expand the first row, in the nested dataTable click on the Link links. No logs are shown in the server console. Expand the second row and click the same links, logs are now shown. Contract the first row and click the links in the second rows dataTable, no logs are seen now.
        Hide
        Arturo Zambrano added a comment - - edited

        Committed fix to 3.3 EE maintenance branch at revision 43802 and to 4.0 trunk at revision 43803.

        The real issue was that certain ace:dataTable's inside ace:panelExpansion's appeared as having no available rows during the APPLY_REQUEST_VALUES phase. Therefore, all the inner components, including UICommand descendants weren't executed in the request, so their action listeners never got invoked. This actually only happened to the components inside the topmost open ace:panelExpansion in an outer table. In the subsequent phases, these tables had a correct model and were showing that they actually had all the rows they were supposed to have. Implementing Serializable and custom equals() and hashCode() methods in the model objects didn't fix the problem. What eventually fixed the issue was to check in the APPLY_REQUEST_VALUES if an ace:dataTable appeared to have no rows, and in that case reset and rebuild the model.

        Show
        Arturo Zambrano added a comment - - edited Committed fix to 3.3 EE maintenance branch at revision 43802 and to 4.0 trunk at revision 43803. The real issue was that certain ace:dataTable's inside ace:panelExpansion's appeared as having no available rows during the APPLY_REQUEST_VALUES phase. Therefore, all the inner components, including UICommand descendants weren't executed in the request, so their action listeners never got invoked. This actually only happened to the components inside the topmost open ace:panelExpansion in an outer table. In the subsequent phases, these tables had a correct model and were showing that they actually had all the rows they were supposed to have. Implementing Serializable and custom equals() and hashCode() methods in the model objects didn't fix the problem. What eventually fixed the issue was to check in the APPLY_REQUEST_VALUES if an ace:dataTable appeared to have no rows, and in that case reset and rebuild the model.
        Hide
        Liana Munroe added a comment - - edited

        Verified ICEfaces 4 trunk and ee-maintenance branch r43806, Tomcat7, IE11, FF33, Chrome 39. The original test case now passes. Each individual JIRA mentioned above was updated with it's testing results. Regressions run on dataTable look normal.

        Show
        Liana Munroe added a comment - - edited Verified ICEfaces 4 trunk and ee-maintenance branch r43806, Tomcat7, IE11, FF33, Chrome 39. The original test case now passes. Each individual JIRA mentioned above was updated with it's testing results. Regressions run on dataTable look normal.

          People

          • Assignee:
            Arturo Zambrano
            Reporter:
            Arran Mccullough
          • Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: