Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 3.3
-
Fix Version/s: 4.0.BETA, EE-3.3.0.GA_P02, 4.0
-
Component/s: ACE-Components
-
Labels:None
-
Environment:Tomcat 7
-
Assignee Priority:P1
-
Salesforce Case Reference:
-
Affects:Compatibility/Configuration
Description
The rowSelectListener method is not executed / silently fails when the ace:dataTable contains cells that fail validation/conversion. According to the ace:datatable tld "Decoding children during feature requests can result in unwanted input submission (during pagination for example), so by default this component suppresses child decoding whenever submitting itself." The rowSelectListener appears to be decoding components in the ace:dataTable.
To re-create this issue, modify dataTableListener.xhtml name column to the following:
<ace:column id="name" headerText="Name">
<h:inputText id="nameCell"
value="#{car.name}"
required="true"
size="7">
<f:ajax execute="@this" render="@this" />
</h:inputText>
</ace:column>
Add a System.out.println to DataTableListener selectListener method.
When you select rows, you will see the selectListener method executed. Empty one of the name cells (which has required="true") and try selecting a row. You will see the row selection style applied in the browser, but the selectListener will not be executed on the server.
To re-create this issue, modify dataTableListener.xhtml name column to the following:
<ace:column id="name" headerText="Name">
<h:inputText id="nameCell"
value="#{car.name}"
required="true"
size="7">
<f:ajax execute="@this" render="@this" />
</h:inputText>
</ace:column>
Add a System.out.println to DataTableListener selectListener method.
When you select rows, you will see the selectListener method executed. Empty one of the name cells (which has required="true") and try selecting a row. You will see the row selection style applied in the browser, but the selectListener will not be executed on the server.
Backported fix to 3.3 EE branch at revision 38848.