我有一个rich:dataTable和一个rich: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错误:

发布于 2010-07-15 16:24:18
问题出在h:commandLink。它以某种方式给有钱人带来了问题:datatable。改为使用4j:commandLink或s:link (如果您使用Jboss Seam)。
发布于 2009-12-29 17:28:06
删除reRender="sc1"。您已经从RichFaces演示中复制粘贴了这段代码,但是您已经删除了"sc1“组件,因此可能发生了javascript错误,从而阻止了表的刷新。
还要确保你的dataTable和datascroller被<h:form>..</h:form>包围(两者都是一种形式)
发布于 2010-09-30 04:32:51
您可能需要考虑使用t:saveState标记或将处理程序放入会话作用域。发生这种情况的原因可能是因为您的处理程序位于request作用域中,并且由于commandLink是另一个请求,因此它无法找到要回发的原始处理程序实例。只要把这个saveState放在这里,我的就开始工作了。
这只是个想法。
https://stackoverflow.com/questions/1973711
复制相似问题