为什么对数据表素数的行选择未将值扔给bean?

时间:2019-04-03 12:52:52

标签: primefaces datatable selection

我的primefaces(5.3版本,2.1 jsf版本,8 Java版本)数据表出现问题。 我在数据表上进行了选择(在行扩展中),并且该值从未抛出给bean,它始终呈现null。

这是我的xhtml代码:

<p:tab title="Stocks" rendered="#{...}">
<p:panel>
<h:form id="form">
  <p:panel styleClass="ongletStock">
    <....>
      <p:panel styleClass="..." style="vertical-align: top !important;background-color: transparent;" id="panelStock" rendered="#{...}">
        <p:dataTable id="tabledepot" var="depot" value="#{bean.depots}" rowKey="#{depot.id}" sortBy="#{depot.nom}" sortOrder="ascending" emptyMessage="aucun enregistrement" styleClass="..." style="" lazy="false" rows="10" paginator="true" paginatorPosition="bottom"
          expandedRow="#{true}">
          <p:column style="width:25px">
            <p:rowToggler/>
          </p:column>
          <p:column>
            ....
          </p:column>
          <p:rowExpansion> `here the datatable with selectionMode`
            <p:dataTable id="datatableEmplacementId" widgetVar="datatableEmplacement" value="#{bean.getListEmplacement(depot)}" var="emplacement" selection="#{bean.emplacementSelected}" selectionMode="single" rowKey="#{emplacement.id}" emptyMessage="aucun enregistrement"
              scrollable="true" scrollHeight="100">
              <p:ajax event="rowSelect" process="@this" />
              <p:ajax event="rowDblselect" oncomplete="PF('...').show()" update="..." process="@this" />
              <p:column/>
              <p:column>
                <p:panelGrid>
                  <p:row>`here the two commandLink called`
                    <p:column>
                      <p:commandLink styleClass="..." style="width: 7px; color: #0b0c0b" actionListener="#{beane.getListEmplacement()}" process="@this" update="dialog" oncomplete="dialog.show();" />
                    </p:column>
                    <p:column>
                      <p:commandLink styleClass="fa fa-trash hz-row-focus" style="width: 7px; color: #0b0c0b" process="@this" actionListener="#{bean.deleteEmplacement()}" update="panelStock" />
                    </p:column>
                  </p:row>
                </p:panelGrid>
              </p:column>
            </p:dataTable>
          </p:rowExpansion>
        </p:dataTable>
      </p:panel>
</h:form>
</p:panel>

在一开始,“ ongletStock”位于ui:include中,并且我读到它可能会导致dataTable选择出现一些问题,因此我将其直接包含在与选项卡相同的xhtml页面中。问题仍然存在...我也尝试过用h:form包围面板,以确保但仍然相同。.

我的行被选中(因为突出显示了),但是当我在commandLink的侦听器中时,emplacementSelected始终为null ...

在Bean中,一切都很好,我有“ emplacementSelected” getter和setter,但即使在rowSelect Ajax事件上添加了侦听器,该值仍为“ null”。

有人看到可能出问题的东西吗?

谢谢。

PS:对不起,我的英语不是我的母语……

0 个答案:

没有答案