1

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>
Jasper de Vries
  • 19,370
  • 6
  • 64
  • 102
Samet Dağ
  • 93
  • 6

1 Answers1

1

Isn't this your issue already reported?

See: https://github.com/primefaces/primefaces/issues/9895

Melloware
  • 10,435
  • 2
  • 32
  • 62