如何在p:dataGrid中显示字符串的arraylist?

时间:2013-02-14 11:08:09

标签: css jsf datagrid primefaces panel

我有ajax功能来添加名称并以表格方式在同一页面上显示一个图像(文本左侧)和一个“X”图像(右侧删除)。它应该从左到右添加,在完成一行后,它应该从下一行开始。

所以我需要在p:datagrid或任何其他可以使用相同功能的标签中显示字符串的arraylist。

我尝试使用ui:repeat和p:panelgrid的组合,但我无法获得datagrid funtionallty。我没有使用p:dataTable,因为它会在我需要的底部添加新元素。

P.S。

<h:form>

        <h:selectOneMenu id="recepients" value="#{controller.selected}">
            <f:selectItem itemLabel="Select" itemValue=""></f:selectItem>
            <f:selectItem itemLabel="Info1" itemValue="Info1"></f:selectItem>
            <f:selectItem itemLabel="Info2" itemValue="Info2"></f:selectItem>
            <f:selectItem itemLabel="Info3" itemValue="Info3"></f:selectItem>
            <f:selectItem itemLabel="Info4" itemValue="Info4"></f:selectItem>
            <f:selectItem itemLabel="Info5" itemValue="Info5"></f:selectItem>


        </h:selectOneMenu>
        <p:commandButton value="Add" action="#{controller.submit}"
            update="nameslist" />

        <p:dataGrid id="nameslist" value="#{controller.tempNameList}"
            var="name" columns="3">
            <p:column>
                <p:outputLabel value="%" />
            </p:column>
            <p:column>
                <p:outputLabel value="#{name}" />
            </p:column>
            <p:column>
                <p:commandLink value="X" action="#{controller.delete(name)}"
                    update="nameslist">
                </p:commandLink>                


            </p:column>

        </p:dataGrid>
    </h:form>

结果应该是这样......

%Abc X. %Xyz X. %dfd X

plz将%视为图像,将X视为近符号

1 个答案:

答案 0 :(得分:2)

<p:dataGrid>不支持<p:column>。此列布局仅适用于<p:dataTable>

将所有<p:column>替换为单个分组组件,例如<h:panelGroup><p:panel> {完全如showcase site所示。

<p:dataGrid id="nameslist" value="#{controller.tempNameList}" var="name" columns="3">
    <h:panelGroup>
        <p:outputLabel value="%" />
        <p:outputLabel value="#{name}" />
        <p:commandLink value="X" action="#{controller.delete(name)}" update="nameslist" />
    </h:panelGroup>
</p:dataGrid>