I would like to use <p:ajax event="rowSelect"
only for outer DataTable. PrimeFaces is treating the inner table as the outer table. I mean, if I select a row a the inner table, it's calling the outer table event listener (which is listener="#{managedBean.onRowSelect}
). How can I make this event only work for the outer and not the inner table?
<p:dataTable id="projectsTable" widgetVar="projectsTableWdgt"
value="#{managedBean.tempProjects}" var="project" rowIndexVar="index"
rowExpandMode="single" lazy="false"
rowKey="#{project.id}" selection="#{managedBean.selectedProject}"
filteredValue="#{managedBean.filteredProjects}"
globalFilterOnly="#{managedBean.globalFilterOnly}"
selectionMode="single">
<p:column style="width:25px;">
<p:rowToggler id="#{index}rowToggler"/>
</p:column>
<p:ajax event="rowSelect" update=":buttonForm"
listener="#{managedBean.onRowSelect}"/>
<p:ajax event="rowUnselect" update=":buttonForm"
listener="#{managedBean.onRowUnSelect}"/>
<p:rowExpansion id="#{index}rowExpansion" widgetVar="#{index}rowExpansionWidget">
<p:dataTable rowSelectMode="checkbox" id="#{index}materialsTable"
widgetVar="#{index}materialsTableWidget" lazy="false"
value="#{project.materials}" var="material"
selection="#{project.selectedMaterials}" rowKey="#{material.id}">
<p:column id="#{index}materialSelection" selectionMode="multiple"
style="width:25px;text-align:center"/>
<p:column headerText="Material" styleClass="customColumn">
<h:outputText
value="#{material.materialNumber}"
readOnly="true"
readonlyCell="true"></h:outputText>
</p:column>
<p:column headerText="Material Description" styleClass="customColumn">
<h:outputText value="#{material.description}"></h:outputText>
</p:column>
<p:column headerText="Material Group" styleClass="customColumn">
<h:outputText value="#{material.materialGroup}"></h:outputText>
</p:column>
<p:column headerText="Material Type" styleClass="customColumn">
<h:outputText value="#{material.materialType}"></h:outputText>
</p:column>
<p:ajax event="rowSelectCheckbox" update=":buttonForm"
listener="#{managedBean.onRowSelectCheckbox}"/>
<p:ajax event="rowUnselectCheckbox" update=":buttonForm"
listener="#{managedBean.onRowUnselectCheckbox}"/>
<p:ajax event="toggleSelect" update=":buttonForm" partialSubmit="true"
listener="#{managedBean.onToggleSelect}"/>
</p:dataTable>
</p:rowExpansion>
</p:dataTable>