【问题标题】:Datatable issues when presenting dynamic columns呈现动态列时的数据表问题
【发布时间】:2011-07-04 13:06:19
【问题描述】:

我有一个 NULLPointerException。 我已经实现了一个名为 Workhours 的对象,它具有 Hours 列表和一个工作日(枚举值)。 现在,我有一个清单 我想将它呈现在一个数据表中,工作日(枚举)名称作为一行,小时数作为列。现在,这是我尝试过的:

                <p:dataTable id="dtWorkHours" var="workhour" value="#{uploadImagesPage.lwh}"  >
                    <p:column>
                        <f:facet name="header">
                            <h:outputText value="Days"></h:outputText>                               
                        </f:facet>
                        <h:outputText value="#{workhour.workday}"></h:outputText>
                    </p:column>
                    <p:columns value="#{workhour.luh}" var="columnUntilHours" columnIndexVar="index">
                        <f:facet name="header">
                             #{columnUntilHours.untilhours}
                        </f:facet>
                        <h:selectBooleanCheckbox value="#{columnUntilHours.checked}" >
                        </h:selectBooleanCheckbox>
                    </p:columns>
                </p:dataTable>

我检查了 WorkHours 对象的初始化,似乎一切就绪。我 p:columns 不起作用有什么原因(当我把它拿出来时,工作日演示文稿作为行起作用)?

提前致谢!

【问题讨论】:

    标签: primefaces


    【解决方案1】:

    我认为不可能在单个 Primefaces 数据表中混合动态列和静态列。您必须选择其中一种方法。

    如果您希望在其中显示workday 列,那么也许您可以创建一个可查看的复合实体类型,将工作日和行实体的属性组合成一个类型。 Workday 可以只是另一个始终存在于动态列集合中的对象。

    【讨论】:

    • 我需要对我的实体进行一些修改,以便为数据表提供正确的动态列。在我看来很奇怪,我必须根据 GUI 修改我的数据库实体......哦,好吧,当它工作时,不要乱用它......
    • @lionheart,我很高兴这对你有用。这在将实体直接绑定到 UI 组件的任何框架中并不少见。在我的设计中,我通常会创建我的普通 Persistence/ORM 实体并将它们直接绑定到简单的 UI 组件,然后我还有 View 实体/Composite Entities 包装我的一个或多个基本实体以对列进行自定义显示和控制。我在为 WinForms、ASP.NET 和 JSF2 编写的应用程序中有类似的设计。
    猜你喜欢
    • 2022-08-16
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 2020-11-17
    • 2018-11-13
    • 2021-11-11
    • 2013-04-24
    • 2011-05-15
    相关资源
    最近更新 更多