java - 如何从 Java 访问 Primefaces 数据表行

标签 java jsf primefaces datatable

我想从 Java 中的 PrimeFaces DataTable 组件获取不同的行。我可以使用 findComponent 从 ViewRoot 找到 DataTable。现在,当我查看组件(使用调试器)时,我可以看到 3 个子组件,即 Children。这些子项是我的数据表第一行中的 3 列,但我无法访问其他行。

我的表 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.

如何访问数据表中的其他行?我只将第一行中的 3 列作为子项。

尝试尽可能通过调试器,但我找不到其他行/组件。

最佳答案

我认为您可以使用 p:dataTable 的 rowIndexVar="rowId" 属性。您可以使用它来传递所选行的 id。

您可以添加带有链接的列以使该行“无效”:

<p:column>
   <h:commandLink action="#{managedBeanActionToMakeRowInvalid}">
     <f:param name="rowIndex" value="#{rowId}" />
   </h:commandLink>
</p:column>

关于java - 如何从 Java 访问 Primefaces 数据表行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45328149/

相关文章:

javascript - 使用 Javascript 访问 IFrame 的 HTML

validation - 验证非必填字段

java - 使用通用数组

java - JSF - 应用程序设计问题。用户登录支持 bean B 后如何获取支持 bean A 中的数据

java - Hibernate单表继承

jsf - 如何使用 JSF 2.0 复合组件实现动态列表?

css - 如何使 commandeButon 垂直对齐?

jsf-2 - 移动站点前缀和jsf 2

java - 清除单元测试的kafka主题

java - 安卓开发 : "thread exiting with uncaught exception"