【问题标题】:Is there a way to replace the headerText by the first value of my dataTable in Primefaces?有没有办法用 Primefaces 中我的 dataTable 的第一个值替换 headerText?
【发布时间】:2021-02-25 12:06:17
【问题描述】:

我希望我的表头具有我的 dataTable 的第一个值。

我知道我可以更改 headerText 的值,但对于我的项目,我需要根据输出的值更改标题。

所以从图片中我希望将“col1”替换为“jour”,将“col2”替换为“lundi”,将“col3”替换为“mardi”等

<p:dataTable resizableColumns="true" liveResize="true" stripedRows="true" size="large" id="a" var="test"
        value="#{testMB1.testlist}" style="padding:20px;" rows="15" paginator="true"
        paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
        currentPageReportTemplate="{startRecord}-{endRecord} of {totalRecords} records"
        rowsPerPageTemplate="3,5,10,15,25, 50, 100, 250, 500" rowKey="#{test.id}" scrollable="true" update="mainForm:a"
        frozenRows="1">

        <f:facet name="header">

            <p:outputPanel>
                <h:outputText value="Search all fields:" />
                <p:inputText filterBy="#{test.id}" id="globalFilter" onkeyup="PF('test').filter()" placeholder="Enter keyword"
                    filterMatchMode="contains" style="width:200px;height:25px;align:right;" />
            </p:outputPanel>

        </f:facet>

        <p:column headerText="Id" sortBy="#{test.id}">
            <h:outputText value="#{test.id}" />

        </p:column>

        <p:column headerText="col1" sortBy="#{test.col1}" filterMatchMode="contains" filterBy="#{test.col1}"
            onkeyup="PF('test').filter()">
            <h:outputText value="#{test.col1}" />
        </p:column>

        <p:column headerText="col2" sortBy="#{test.col2}" filterMatchMode="contains" filterBy="#{test.col2}"
            onkeyup="PF('test').filter()">
            <h:outputText value="#{test.col2}" />
        </p:column>


        <p:column headerText="col3" sortBy="#{test.col3}" filterMatchMode="contains" filterBy="#{test.col3}"
            onkeyup="PF('test').filter()">
            <h:outputText value="#{test.col3}" />
        </p:column>

        <p:column headerText="col4" sortBy="#{test.col4}" filterMatchMode="contains" filterBy="#{test.col4}"
            onkeyup="PF('test').filter()">
            <h:outputText value="#{test.col4}" />
        </p:column>

        <p:column headerText="col5" sortBy="#{test.col5}" filterMatchMode="contains" filterBy="#{test.col5}"
            onkeyup="PF('test').filter()">
            <h:outputText value="#{test.col5}" />
        </p:column>

        <p:column headerText="col6" sortBy="#{test.col6}" filterMatchMode="contains" filterBy="#{test.col6}"
            onkeyup="PF('test').filter()">
            <h:outputText value="#{test.col6}" />
        </p:column>

        <p:column headerText="col7" sortBy="#{test.col7}" filterMatchMode="contains" filterBy="#{test.col7}"
            onkeyup="PF('test').filter()">
            <h:outputText value="#{test.col7}" />
        </p:column>

        <p:column headerText="col8" sortBy="#{test.col8}" filterMatchMode="contains" filterBy="#{test.col8}"
            onkeyup="PF('test').filter()">
            <h:outputText value="#{test.col8}" />
        </p:column>

        <p:column headerText="col9" sortBy="#{test.col9}" filterMatchMode="contains" filterBy="#{test.col9}"
            onkeyup="PF('test').filter()">
            <h:outputText value="#{test.col9}" />
        </p:column>

        <p:column headerText="col10" sortBy="#{test.col10}" filterMatchMode="contains" filterBy="#{test.col10}"
            onkeyup="PF('test').filter()">
            <h:outputText value="#{test.col10}" />
        </p:column>

    </p:dataTable>

My dataTable

【问题讨论】:

标签: jsf primefaces


【解决方案1】:

将所有 headerText 替换为以下代码(根据您的映射对象)。在 bean 中,不要忘记验证您的列表是否为 null,以免出现 NullPointerException。

<p:column headerText="#{testMB1.testlist.get(0).id}">

从技术上讲,更好的方法是在 bean 中创建一个带有列标题的最终列表,并在 headerText 中调用它。

如果标题是动态的,您可以使用dynamic columns,正如Jasper de Vries 所建议的那样

【讨论】:

    猜你喜欢
    • 2018-09-23
    • 1970-01-01
    • 2021-07-06
    • 1970-01-01
    • 2019-09-30
    • 1970-01-01
    • 1970-01-01
    • 2016-04-20
    • 2020-02-27
    相关资源
    最近更新 更多