【发布时间】:2012-09-22 04:25:26
【问题描述】:
我正在使用 JSF 2.0。当我尝试在 h:dataTable 的 'id' 属性中使用变量时,它不会采用该变量值。
我在 ui:repeat 中有 h:dataTable,其中 id 值作为 ui:repeat 的索引,如下所述。
<ui:repeat var="planMap" value="#{planAccountMap.entrySet().toArray()}" varStatus="planMapStatus">
<h:dataTable id="planTable#{planMapStatus.index}" value="#{planMap.value}" var="accountList">
有人知道我们是否可以在循环中为 h:dataTable 生成动态 id 吗?
我有一个使用表 ID 的 Java 脚本,但由于我无法为循环中的每个表提供唯一 ID,因此它会中断。
【问题讨论】:
-
组件将根据UIComponent.getClientId指定的规则发出一个客户端标识符
-
感谢大家的研究和回复。我已经通过在数据表中使用数据表解决了这个问题,如下所示。
<h:dataTable id="outerTable" value="#{planAccountMap.entrySet().toArray()}" var="planMap"> <h:dataTable id="planTable" value="#{planMap.value}" var="accountList">。通过这个,我得到了唯一 id 为outerTable:0:planTable,outerTable:1:planTable...这甚至将唯一 id 扩展到数据表中的每个元素,如outerTable:1:planTable:1:columnid,outerTable:0:planTable:0:columnid