我想从Java中的PrimeFaces DataTable组件中获取不同的行。我可以使用findComponent从ViewRoot中找到DataTable。现在,当我查看组件(使用调试器)时,我可以看到3个孩子,孩子们。这些子项是我的DataTable的第一行中的3列,但我无法访问其他行。
My Table XHTML的结构如下:(示例)
<h:form id="form">
<p:dataTable id="table" var="t">
<p:column>
<p:inputNumber id="inputOne" />
</p:column>
<p:column>
<p:inputNumber id="inputTwo" />
</p:column>
<p:column>
<p:inputNumber id="inputThree" />
</p:column>
</p:dataTable>
</h:form>
这就是我在Java代码中获取DataTable的方法:
final DataTable table = (DataTable) getFacesContext().getViewRoot().findComponent("form:table");
table.getChildren(); // 3 Children, even if the DataTable got 10 Rows.
如何访问DataTable中的其他行?我只把第3行中的3列作为孩子。
试图尽可能地通过调试器,但我找不到其他行/组件。
答案 0 :(得分:0)
我认为您可以使用p:dataTable的rowIndexVar="rowId"
属性。您可以使用它来传递所选行的ID。
您可以添加一个包含链接的列,使该行“无效”:
<p:column>
<h:commandLink action="#{managedBeanActionToMakeRowInvalid}">
<f:param name="rowIndex" value="#{rowId}" />
</h:commandLink>
</p:column>