【问题标题】:Primefaces Datatable filtering and pagination issuePrimefaces Datatable 过滤和分页问题
【发布时间】:2013-06-24 07:54:59
【问题描述】:

我正在使用 JSF 2.0 和 primefaces 3.5。我面临的问题是我在页面上创建了一个数据表..随着分页和过滤,每件事都可以正常工作,但是当我在模板中包含相同的页面时......分页和过滤停止工作..任何关于这 代码是

<h:form id="form">
    <p:dataTable var="row" rowKey="row.attackID"
        value="#{attackBean.list}" id="tableAttack" paginator="true"
        rows="10" selection="#{attackBean.selectedAttack}"
        filteredValue="#{attackBean.filteredAttack}"
        rowsPerPageTemplate="5,10,15" selectionMode="single">

        <p:ajax event="rowSelect" update=":centerForm:form:display"
            oncomplete="dlg.show()" />

        <p:column headerText="Attack-ID" filterBy="#{row.attackID}">
            <h:outputText value="#{row.attackID}" />
        </p:column>
        <p:column headerText="Action Name" filterBy="#{row.attackName}">
            <h:outputText value="#{row.attackName}" />
        </p:column>
        <p:column headerText="Defended User" filterBy="#{row.userID}">
            <h:outputText value="#{row.userID}" />
        </p:column>
        <p:column headerText="Action Taken">
            <h:outputText value="#{row.actionTaken}" />
        </p:column>
        <p:column headerText="Attack Time">
            <h:outputText value="#{row.attackTime}" />
        </p:column>
    </p:dataTable>

    <p:dialog id="tDialog" header="Threat info" widgetVar="dlg"
        modal="true" height="250" width="300" showEffect="explode"
        hideEffect="bounce">
        <h:panelGrid id="display" columns="1" cellpadding="4">
            <h:outputText value="Attack ID: #{attackBean.selectedAttack.attackID} " />
            <h:outputText value="Description: #{attackBean.selectedAttack.userID}" />
            <h:outputText
                value="Action Taken: #{attackBean.selectedAttack.actionTaken}" />
        </h:panelGrid>
    </p:dialog>
</h:form>

这是主要的模板代码

 <h:body style="">
<div id="page" >

        <h:panelGroup id="mainPanel">
        <div id="left" class="bar">
            <ui:insert name="left">
                <ui:include src="commonLeft.xhtml" />
            </ui:insert>
        </div>
        <div id="center">

            <div id="hDiv">
                <ui:insert name="left">
                <ui:include src="commonHeader.xhtml" />
            </ui:insert>
            </div>
            <div id="cDiv">
                <h:form id="centerForm">        
                <h:panelGroup id="centerPanel" render="mainPanel">
                    <ui:include src="#{browse.url}" />
                </h:panelGroup>
                </h:form>
            </div>
        </div>
        <div id="right" >
            <ui:insert name="right">
                <ui:include src="commonFooter.xhtml" />
            </ui:insert>
        </div>
    </h:panelGroup>

</div>      
 </h:body>

【问题讨论】:

  • 能否也包含父页面?可能是您正在嵌套表单,这是不允许的。
  • 好吧,我必须包括它,嵌套表格是否在这个问题上起作用
  • 我的意思是把它包括在这里,在问题中。
  • 我已经包含了模板
  • 附带说明 - 我建议您看看使用带有 ui:composition 的 facelets,而不是将真实页面包含在模板中。

标签: jsf-2 primefaces


【解决方案1】:

我假设您在本节中包含您的模板:

<h:form id="centerForm">        
    <h:panelGroup id="centerPanel" render="mainPanel">
        <ui:include src="#{browse.url}" />
    </h:panelGroup>
</h:form>

如果是这样,那么你就有嵌套表单的问题。这是不允许的,并且内部表单将从 HTML 代码中删除(您可以在浏览器的源代码中看到)。您不应该将表单强加在父模板中,而让孩子创建他们将要使用的表单。

【讨论】:

  • thanx MaQy.. 你拯救了我的一天
  • 不允许使用普通的&lt;form&gt;&lt;div&gt;&lt;form&gt;&lt;bla /&gt;&lt;/form&gt;&lt;/div&gt;&lt;/form&gt;
猜你喜欢
  • 1970-01-01
  • 2014-11-10
  • 1970-01-01
  • 2011-10-18
  • 2013-08-21
  • 1970-01-01
  • 2011-10-18
  • 2012-09-22
  • 2013-12-04
相关资源
最近更新 更多