引用dataTable页脚

时间:2014-10-23 08:55:45

标签: primefaces facelets jsf-2.2

我正在尝试使用从p:dataTable内的组件触发的Ajax更新来更新表的页脚。但无论我如何在p:ajax标签中编写我的ID引用,我似乎无法使它们正确。

这是一个例子:

<h:form id="formId">

  <p:dataTable id="tableId" var="row" value="#{testBean.dataRows}" rowIndexVar="rowIx">
    <p:column>
      <h:outputText value="#{row}"/>

      <p:inputText id="innerInputId" value="#{testBean.str}">
        <p:ajax event="keyup" update="tableId:footerId"/>
        <p:ajax event="keyup" update=":formId:tableId:footerId"/>
        <p:ajax event="keyup" update="@form:tableId:footerId"/>
      </p:inputText>

      <f:facet name="footer">
        <h:outputText id="footerId" value="#{testBean.str}"/>
      </f:facet>
    </p:column>
  </p:dataTable>

  <p:inputText id="outerInputId" value="#{testBean.str}">
    <p:ajax event="keyup" update="tableId:footerId"/>
  </p:inputText>

</h:form>

在生成的HTML中,我可以看到页脚中的outputText获取了ID formId:tableId:footerId

来自outerInputId的引用很好。

innerInputId的所有引用我希望能够发挥作用,但事实并非如此。在生成的HTML中,我可以看到它们被翻译为formId:tableId:0:footerId形式。如果页脚位于当前行的命名容器内,这是有意义的,但它不是我从其ID中看到的。

我在这里闻到了一个错误。我对吗?我该如何解决它?

或者这是预期的行为,在这种情况下为什么?

我想这样做以显示页脚中列中所有单元格的总和。

相关软件:PrimeFaces 5.1,Mojarra 2.2.7,GlassFish 4.1

0 个答案:

没有答案