如何从同一行(JSF)的p:dataTable渲染另一个属性?

时间:2016-11-16 01:06:38

标签: jsf primefaces jsf-2 datatable

我正在使用JSF 2.2和Primefaces 6.0。我有p:dataTablep:column个,每列有很多行。我希望,只要column1 input更改,column2 input,在同一行,更新,但是,它不起作用;它没有渲染。

这是我的xhtml代码:

<p:dataTable value="#{myBean.objectsList}" var="object">
  <p:column headerText="column1">
    <table>
      <tbody>
        <ui:repeat value="#{object.subObjects}" var="object2">
          <tr>
            <td>
              <c:set var="object3" value="#{object2.subObjects}"/>
              <h:inputText id="value1#{myBean.toString(object3)}" value="#{object3.value1}">
                <f:ajax event="change" listener="#{myBean.doSomething}"
                        execute="@this" render="@this"/>
              </h:inputText>
            </td>
          </tr>
        </ui:repeat>
      </tbody>
    </table>
  </p:column>
  <p:column headerText="column2">
    <table>
      <tbody>
        <ui:repeat value="#{object.subObjects}" var="object2">
          <tr>
            <td>
              <c:set var="object3" value="#{object2.subObjects}"/>
              <h:inputText value="#{object3.value2}" disabled="disabled">
                <f:ajax event="change" listener="#{myBean.doSomething2}"
                        execute="@this" render="value1#{myBean.toString(object3)}"/>
              </h:inputText>
            </td>
          </tr>
        </ui:repeat>
      </tbody>
    </table>
  </p:column>
</p:dataTable>

每个object都有objectsList

1 个答案:

答案 0 :(得分:0)

在第一列的f:ajax标记(column1)中,您已将@this作为属性render的值。 相反,请尝试提供组件column2的ID或p:dataTable本身的ID。