0

我正在尝试将 dataExporter 组件添加到我的表中。首先我在分页方面有{Exporters},然后经过多次尝试,我在控制台中遇到了这个错误

关闭更改时的 HTML 嵌套警告:元素更新未明确关闭

我也解决了它,但现在导出器方面没有出现任何内容。我用谷歌搜索,发现我的页面需要一个表单,因为这个命令链接提交表单,所以它需要一个表单。

我的问题是如何在我的项目中应用这个例子。

这是我的代码。

<ui:composition template="/template.xhtml">
    <ui:define name="title">
        <h:outputText value="#{bundle.ViewLfmTitle}"></h:outputText>
    </ui:define>
    <ui:define name="body">
        <h:panelGroup id="messagePanel" layout="block">
            <h:messages errorStyle="color: red" infoStyle="color: green"
                        layout="table" />
        </h:panelGroup>
        <p:dialog header="Add Task" widgetVar="dlg" position="center center"
                  onShow="PF('dlg').initPosition()" modal="true" closeOnEscape="true"
                  resizable="false">
            <h:form>

                <h:panelGrid columns="2">
                    <p:outputLabel value="#{bundle.CreateTaskLabel_name}" for="name" />
                    <p:inputText id="name"
                                 value="#{ViewLfmJpaController.newTaskDTO.name}"
                                 title="#{bundle.CreateTaskTitle_name}" />
                    <p:outputLabel value="#{bundle.CreateTaskLabel_durationPerMonth}"
                                   for="durationPerMonth" />
                    <p:inputText id="durationPerMonth"
                                 value="#{ViewLfmJpaController.newTaskDTO.duration}"
                                 title="#{bundle.CreateTaskTitle_durationPerMonth}" />
                    <p:outputLabel value="#{bundle.CreateTaskLabel_startDate}"
                                   for="startDate" />
                    <p:calendar id="startDate"
                                value="#{ViewLfmJpaController.newTaskDTO.startDate}"
                                title="#{bundle.CreateTaskTitle_startDate}" pattern="d MMM yyyy"
                                effect="fold">
                        <f:convertDateTime pattern="d MMM yyyy" />
                    </p:calendar>
                    <p:outputLabel value="#{bundle.CreateTaskLabel_endDate}"
                                   for="endDate" />
                    <p:calendar id="endDate"
                                value="#{ViewLfmJpaController.newTaskDTO.endDate}"
                                title="#{bundle.CreateTaskTitle_endDate}" pattern="d MMM yyyy"
                                effect="fold">
                        <f:convertDateTime pattern="d MMM yyyy" />
                    </p:calendar>
                    <f:facet name="footer">

                        <p:commandButton value="Add"
                                         actionListener="#{ViewLfmJpaController.addTask}" update="Matrix"
                                         oncomplete="PF('dlg').hide()" />
                    </f:facet>


                </h:panelGrid>
            </h:form>
        </p:dialog>

        <p:dataTable id="Matrix" resizableColumns="true" scrollable="true"
                     scrollHeight="80%"
                     value="#{ViewLfmJpaController.selected.tasksDtoCollection}"
                     paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {Exporters}"
                     var="item" resizeMode="expand" paginator="true" rows="10"
                     style="margin-bottom:20px">
            <f:facet name="header">
                Logical Framewrok Matrix
            </f:facet>

            <f:facet name="{Exporters}">
                <p:commandLink>
                    <p:graphicImage name="../resources/images/pdf.jpg" width="24" />
                    <p:dataExporter type="pdf" target="Matrix" fileName="lfm" />
                </p:commandLink>
            </f:facet>
            <p:column headerText="Index" colspan="1">
                <c:forEach var="i" begin="1" end="#{ViewLfmJpaController.listSize}">
                    <p:outputLabel value="#{i}"></p:outputLabel>
                </c:forEach>
            </p:column>
            <p:column headerText="Task Title">
                <p:outputLabel value="#{item.name}"></p:outputLabel>
            </p:column>
            <p:column headerText="Start Date" colspan="3">
                <p:outputLabel value="#{item.formatedStartDate}"></p:outputLabel>
            </p:column>
            <p:column headerText="End Date" colspan="3">
                <p:outputLabel value="#{item.formatedEndDate}"></p:outputLabel>
            </p:column>
            <c:forEach var="i" begin="1"
                       end="#{ViewLfmJpaController.numberOfMonths}">
                <p:column headerText="m ${i}" colspan="1"></p:column>
            </c:forEach>
            <p:column headerText="Exptected Outcomes" colspan="4">
                <ui:repeat value="#{item.tasksExpectedOutcomesCollection}" var="teo">
                    <li><h:outputText value="#{teo.expectation}">


                        </h:outputText></li>
                </ui:repeat>
            </p:column>
        </p:dataTable>

        <p:commandButton value="Add Task" oncomplete="PF('dlg').show()"></p:commandButton>
    </ui:define>
</ui:composition>

4

1 回答 1

0

我自己找到了解决方案。首先:你必须知道你不能在你的页面中制作嵌套表单。第二:你必须知道提交 <p:dialog> </p:dialog>或使用 <h:commandLink> </h:commandLink> 你需要使用表单。

所以我删除了对话框组件中的表单并添加了一个通用组件包含dialogdataTable一起

于 2017-10-05T13:34:04.993 回答