4

我有一个要求,我需要在表单上显示将从数据库中检索的组件。我能够在数据表和 ui 重复的帮助下显示组件。我还需要为这些组件包含工具提示功能,每个组件都需要一个 ID。有什么方法可以动态地将 id(s) 添加到组件中。

<p:dataTable styleClass="borderless" id="rdResultTable" var="result"
    value="#{RequestBean.radioList}" rendered="#{not empty RequestBean.radioList}">

    <p:column style="width:150px;">
        <f:facet name="header">
            <h:outputText value=" " />
        </f:facet>
        <h:outputText value="#{msg[result.field_label]}"/>
    </p:column>
    <p:column>
        <f:facet name="header">
            <h:outputText value="" />
        </f:facet>
        <ui:repeat value="#{RequestBean.radioList}" var="itm">
            <p:inputText  value="#{itm.indFieldValue}"
            rendered="#{result.level_id==itm.level_id and  result.field_type=='textbox'}">
            </p:inputText>
        </ui:repeat>
    </p:column>
</p:dataTable>

任何帮助,将不胜感激。

4

2 回答 2

9

你不需要。JSF 会自动担心<p:tooltip>在同一循环中设置与目标组件之间的正确关系。

<ui:repeat ...>
    <p:inputText id="foo" ... />
    <p:tooltip for="foo" ... />
</ui:repeat>

在您的网络浏览器中拉取 JSF 页面,右键单击并执行查看源代码。您会注意到<ui:repeat>已经自动为 IDfoo添加了迭代索引的前缀。

于 2014-01-22T19:41:43.817 回答
-1

据我所知,JSF 不允许您动态设置 id,而 primefaces 是基于 JSF 的。

或许这个问题的答案可以帮到你:参考JSF根据迭代索引动态生成的ids

于 2014-01-22T16:44:09.400 回答