使用ui水平显示列;在dataTable下连续重复

时间:2013-05-28 16:01:25

标签: jsf-2 primefaces

我正在使用primefaces数据表。数据表中的每一行都有24列代表24小时值。截至目前,我正在使用一个静态xhtml,其中包含24列单独编码,我希望它能使其动态化,以便可以轻松维护代码,列下的输入文本框是从数组中获取的。当我尝试使用数组时,我没有看到水平创建列。 PFA以下代码。

在parent.xhtml中,我们有dataTable,

    <p:dataTable id="tbl" var="row" value="#{prvdr.values}" 
binding="#{prvdr.dataTable}" widgetVar="table" filteredValue="#{prvdr.filteredList}" 
scrollable="true" scrollWidth="auto" lazy="false" rowKey="#{row.id}" paginator="true" 
filterEvent="enter" paginatorTemplate="#{appmsg['label.recordsperpage']}: {RowsPerPageDropdown} {FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}"
rowsPerPageTemplate="5,10,15,20,50" editable="true" editMode="cell">
<ui:include src="hourly.xhtml" />

</p:dataTable>

在包含的hourly.xhtml内部

    <ui:composition xmlns="http://www.w3.org/1999/xhtml"
    xmlns:c="http://java.sun.com/jsp/jstl/core"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:p="http://primefaces.org/ui">

    <ui:repeat items="#{row.hourArray}" var="item" varStatus="myVarStatus">
        <p:column styleClass="col-right col-90">
            <f:facet name="header">
                <h:outputText value="myVarStatus.index" escape="false" />
            </f:facet>
            <p:cellEditor>
                <f:facet name="output">
                    <h:outputText value="#{item}" escape="false">
                        <f:convertNumber maxFractionDigits="3" minFractionDigits="3"
                            maxIntegerDigits="5" />
                    </h:outputText>
                </f:facet>
                <f:facet name="input">
                    <p:inputText value="#{item}" maxlength="10" size="10">
                        <f:convertNumber maxFractionDigits="3" minFractionDigits="3"
                            maxIntegerDigits="5" />
                    </p:inputText>
                </f:facet>
            </p:cellEditor>
        </p:column>
    </ui:repeat>
</ui:composition>

Row对象由java类支持,其中hourArray表示如下。

private BigDecimal[] hourArray;

我尝试了ui:repeat和c:forEach但无法创建所需的视图。 欢迎任何帮助和建议。

0 个答案:

没有答案