【问题标题】:rich:dataScroller does not refresh rich:dataTable in JSFRich:dataScroller 不刷新 Rich:JSF 中的 dataTable
【发布时间】:2010-12-30 17:32:14
【问题描述】:

我有一个rich:dataTable 和一个rich:dataScroller。当我单击 datascroller 时,我的 dataTable 不会自动刷新以显示正确的页面。但是,如果我按下刷新按钮,dataTable 会显示正确的页面。

我做错了什么?

这是我的代码:

<rich:dataTable id="applicantsTable"
binding="#{applicantListManBean.applicantsDataTable}"
value="#{applicantListManBean.applicantsList}" var="applicant"
rows="10" width="650">

<h:column>
    <f:facet name="header">
        <h:outputText value="Name" />
    </f:facet>
    <h:outputText value="#{applicant.name}" />
</h:column>

<h:column>
    <f:facet name="header">
        <h:outputText value="Email" />
    </f:facet>
    <h:outputText value="#{applicant.email}" />
</h:column>

<h:column>

    <f:facet name="header">
        <h:outputText value="Action" />
    </f:facet>

    <h:commandLink action="#{applicantListManBean.showApplicantProducts}"
        rendered="true">
        <h:graphicImage value="/images/icons/view.png" width="15" height="15"
            alt="view" />
        <f:setPropertyActionListener
            target="#{applicantListManBean.tempApplicant}" value="#{applicant}" />
    </h:commandLink>

    <h:commandLink action="#{applicantListManBean.deleteApplicant}"
        rendered="true">
        <h:graphicImage value="/images/icons/delete.png" width="15"
            height="15" alt="view" />
        <f:setPropertyActionListener
            target="#{applicantListManBean.tempApplicant}" value="#{applicant}" />
    </h:commandLink>

</h:column>
</rich:dataTable>

<rich:datascroller id="applicantsScroller" for="applicantsTable"
reRender="sc1" maxPages="7" page="#{applicantListManBean.scrollerPage}" />

更新:附加 Javascript 错误:

1:http://imgur.com/132fL.png

【问题讨论】:

    标签: java jsf jakarta-ee refresh richfaces


    【解决方案1】:

    错了。。

    尝试:

        <rich:dataTable width="300" id="carList" rows="10" columnClasses="col"
                            value="#{datosCtrlBean.datos}" var="category" >
    
    
                <rich:datascroller align="left" for="carList" id="sc2"  ajaxSingle="true" reRender="carList" limitToList="carList"/>
    

    【讨论】:

    • 欢迎来到 SO!对于可能会来寻找这个问题的答案的访问者,您能否扩展一下并解释为什么应该尝试这个?
    【解决方案2】:

    rich:datatablereRender 的id 放入rich:datascroller 的表格中,如下所示。这对我有用:

    <f:view>
        <a4j:keepAlive beanName="datosCtrlBean" ajaxOnly="true"/>
        <h:form>
            <rich:dataTable reRender="sc2"  width="300" id="carList" rows="10" columnClasses="col"
                                value="#{datosCtrlBean.datos}" var="category" id="myTable" >
    
                    <f:facet name="header">
                        <rich:columnGroup>
                            <h:column>
                                <h:outputText styleClass="headerText" value="Make" />
                            </h:column>
                        </rich:columnGroup>
                    </f:facet>
                    <h:column>
                        <h:outputText value="#{category}" />
                    </h:column>
                    <f:facet name="footer">
                    <rich:datascroller align="left" for="carList" id="sc2"  ajaxSingle="true" reRender="myTable" limitToList="myTable"/>
                    </f:facet>
                </rich:dataTable>
        </h:form>
    </f:view>
    

    【讨论】:

      【解决方案3】:

      您可能需要考虑使用 t:saveState 标记或将处理程序置于会话范围内。这可能发生的原因是因为您的处理程序在请求范围内,并且由于 commandLink 是另一个请求,它找不到要回发的原始处理程序实例。通过简单地将这个 saveState 放在这里,我的开始工作了。

      只是一个想法。

      【讨论】:

        【解决方案4】:

        问题在于 h:commandLink。它以某种方式给富人制造了问题:数据表。请改用 a4j:commandLink 或 s:link(如果您使用 Jboss Seam)。

        【讨论】:

          【解决方案5】:

          删除reRender="sc1"。您已从 RichFaces 演示中复制粘贴此内容,但您已删除“sc1”组件,因此可能发生了阻止刷新表的 javascript 错误。

          还要确保您的 dataTabledatascroller&lt;h:form&gt;..&lt;/h:form&gt; 包围(两者都采用一种形式)

          【讨论】:

          • 查看您的 Firefox javascript 控制台是否有任何 js 错误并在此处提供
          • 我让它们按顺序被
            包围。
          • 尝试删除部分代码(一些列、绑定属性等),看看它何时开始工作(即它会停止给出 js 错误)
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-01-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-12-21
          • 1970-01-01
          相关资源
          最近更新 更多