动态行应包含PrimeFaces数据表中的不同(动态)组件

时间:2012-12-07 10:41:50

标签: jsf-2 datatable primefaces

我想使用primefaces在jsf中创建一个数据表,我必须动态添加行。但动态添加的每一行都应该有不同的组件。例如,如果添加第一行,则它应在所有列中包含inputtext组件。对于第二行,它应在其第一列中包含SelectOnemenu,并为其他列包含输入文本。类似地,第三行应包含第一列中的outputtext和其他列中的inputtext。

1 个答案:

答案 0 :(得分:1)

使用rendered属性。 E.g。

<h:dataTable value="#{bean.fields}" var="field">
    <h:column>
        <h:inputText value="#{field.value}" rendered="#{field.type == 'TEXT'}" />
        <h:selectOneMenu value="#{field.value}" rendered="#{field.type == 'MENU'}">
            <f:selectItems value="#{field.availableValues}" />
        </h:selectOneMenu>
        <h:outputText value="#{field.value}" rendered="#{field.type == 'OUTPUT'}" />
    </h:column>
</h:dataTable>