不幸的是,我对PrimeFaces SummaryRow有问题。

我需要做的是创建一个包含一些内容的简单SummaryRow。但是总是在我将一些东西放入PrimeFaces Datatable的SummaryRow渲染器中时,从列标题中添加额外的字符串。

下面的一些代码:

 <p:dataTable var="orderProductVariantSerializable"
                     reflow="true"
                     sortBy="#{orderProductVariantSerializable.serialVersionUID}"
                     value="#{cartView.orderSerializableList}">


            <p:column class="image-column" headerText="#{stringProduct}">
                <c:set var="productVariant" value="#{orderProductVariantSerializable.productVariant}" />
                <ui:include src="../parts/product_image.xhtml" />
            </p:column>

            <p:column  headerText="#{stringDescription}">
                <p:outputPanel class="cart-cell-wrapper cart-description">
                    <h:outputText class="cart-description-manufacturer"
                                  value="#{orderProductVariantSerializable.productName.product.manufacturer.aname}"/>
                    <h:outputText value="#{orderProductVariantSerializable.productName.avalue}"/>
                </p:outputPanel>
                <p:outputPanel class="cart-cell-wrapper attributes-column">
                    <p:dataList
                        var="position"
                        rendered="#{not empty orderProductVariantSerializable.variantItemList}"
                        value="#{orderProductVariantSerializable.variantItemList}">
                        <h:panelGrid columns="2">
                            <h:outputText value="#{position.attributesNames.avalue}"/>
                            <p:dataList var="attributesPositionsName" value="#{position.attributesPositionsNamesList}">
                                <h:outputText value="#{attributesPositionsName.avalue}"/>
                            </p:dataList>
                        </h:panelGrid>
                    </p:dataList>
                </p:outputPanel>
            </p:column>

            <p:column class="quantity-column" headerText="#{stringQuantity}">
                <p:outputPanel class="cart-cell-wrapper">
                    <h:panelGrid class="quantity-table">
                        <p:outputPanel>
                            <p:inputNumber decimalPlaces="0" readonly="true" value="#{orderProductVariantSerializable.amount}"/>
                        </p:outputPanel>
                        <h:panelGrid columns="2">
                            <p:commandLink rendered="#{cartView.shouldRenderEnabledMinus(orderProductVariantSerializable)}"
                                           actionListener="#{cartView.decrementQuantity(orderProductVariantSerializable)}" process="@form"
                                           onstart="NProgress.start();"
                                           oncomplete="NProgress.done();">
                                <i class="fas fa-minus" aria-hidden="true"></i>
                            </p:commandLink>
                            <p:commandLink rendered="#{cartView.shouldRenderDisabledMinus(orderProductVariantSerializable)}" disabled="true">
                                <i class="fas fa-minus" aria-hidden="true"></i>
                            </p:commandLink>
                            <p:commandLink actionListener="#{cartView.incrementQuantity(orderProductVariantSerializable)}" process="@form"
                                           onstart="NProgress.start();"
                                           oncomplete="NProgress.done();">
                                <i class="fas fa-plus" aria-hidden="true"></i>
                            </p:commandLink>
                        </h:panelGrid>
                    </h:panelGrid>
                </p:outputPanel>
            </p:column>

            <p:column headerText="#{stringAvailability}">
                <h:outputText value="#{orderProductVariantSerializable.productVariant.amount}" />
            </p:column>

            <p:column class="unit-price-column" headerText="#{stringUnitPrice}">
                <h:outputText value="#{orderProductVariantSerializable.finalPriceGross}">
                    <f:convertNumber groupingUsed="true" minFractionDigits="2"/>
                </h:outputText>
                <h:outputText value="#{layoutView.currency.aname.toUpperCase()}"/>
            </p:column>

            <p:column headerText="#{stringToPay}">
                <h:outputText value="#{orderProductVariantSerializable.toPayAll}">
                    <f:convertNumber groupingUsed="true" minFractionDigits="2"/>
                </h:outputText>
                <h:outputText value="#{layoutView.currency.aname.toUpperCase()}"/>
            </p:column>

            <p:column headerText="#{stringToPay}">
                <h:outputText value="#{orderProductVariantSerializable.toPayAllNet}">
                    <f:convertNumber groupingUsed="true" minFractionDigits="2"/>
                </h:outputText>
                <h:outputText value="#{layoutView.currency.aname.toUpperCase()}"/>
            </p:column>

            <p:column class="delete-column">
                <p:commandLink actionListener="#{cartView.deleteProductFromCart(orderProductVariantSerializable)}"
                               class="cart-trash"
                               update="#{cartView.formId}"
                               onstart="NProgress.start();"
                               oncomplete="NProgress.done();">
                    <i class="fas fa-times" aria-hidden="true"></i>
                </p:commandLink>
            </p:column>

            <p:summaryRow>
                <p:column colspan="8" >
                    <h:outputText value="Summary:" />
                </p:column>
            </p:summaryRow>

        </p:dataTable>


就像您在SummaryRow中看到的那样,我只有带有值'Summary:'的outputText。但是数据表的渲染器从第一个Column headerText添加了额外的文本,即'Produkt'。最后,我进入html(摘要行),类似于“ ProduktSummary:”

和图片(结果):

jsf - Primefaces SummaryRow渲染标题列标题-LMLPHP

最佳答案

盖茨我找到了解决方案。我希望这可以帮助解决这个问题的人。该解决方案只是从数据表中删除了重排属性,因此效果很好=)。

我希望这篇文章对某人有帮助

07-24 13:56