jsf - 在带有新实体的 primefaces dataTable 中使用 rowKey

标签 jsf primefaces datatable

嗯,我知道我必须从对象中选择一个唯一的字段,例如 ID。那么我的 rowKey 是“item.id”。当加载数据表中的所有iten时,这工作得很好,但是如果我添加一个带有空ID的新项目(该对象尚未持久化在数据库中),它不会出现在我的数据表中。

这个问题有什么解决办法吗?我只能使用 ID 作为 rowKey,但有时我需要添加一个具有 NULL ID 的新对象(因为这还没有保留在数据库中)。

看我的代码:

<p:dataTable rowKey="#{item.id}" var="item"
                    value="#{orcamentoMB.itens}"
                    emptyMessage="Não foi encontrado nenhum registro"
                    id="dataTableItens"
                    selection="#{orcamentoMB.selectedItemOrcamento}"
                    selectionMode="single" rowIndexVar="rowIndex"
                    rowStyleClass="#{(rowIndex mod 2) eq 0 ? 'first-row' : 'second-row'}">

最佳答案

然后使用另一个唯一标识符。也许是 hashCode() 甚至是 toString()

rowKey="#{not empty item.id ? item.id : item.hashCode()}"

关于jsf - 在带有新实体的 primefaces dataTable 中使用 rowKey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18797241/

相关文章:

java - cellEditor 中的 commandLink 不会触发 action/actionListener

linq - Field扩展方法的要点

c# - 在 System.Data.DataTable 中将列定义为可为空

javascript - 包含 div @ 100% 缩放的数据表溢出

java - JSF FacesTagExtraInfo 类不在 JSF 1.2 v 中

jquery - JSF + jQuery : how to achieve StackOverFlow collapsible comment box

jsf - 文件上传不适用于 PrimeFaces 4.0/JSF 2.2.x 中的 AJAX - javax.servlet.ServletException : The request content-type is not a multipart/form-data

java - spring-session是否用HttpSession保存bean?

java - JSF 页面上的 EL 表达式求值时间

primefaces - 菜单项的 ID 未呈现