[英]JSF Richfaces datatable and datascroller loading
I would like to know if it's possible to have a Loading overlay appear on the page while i have the rich:datatable being loaded (mainly on first display, and every time the page in the rich:dataScroller is changed), As the loading times are being horribly slow. 我想知道在我加载rich:datatable时(主要在第一次显示时,以及每次rich:dataScroller中的页面更改时)是否有可能在页面上出现“加载”叠加层,实在太慢了。
Here is my current situation: 这是我目前的情况:
<ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:a4j="http://richfaces.org/a4j" xmlns:rich="http://richfaces.org/rich" xmlns:sec="http://www.springframework.org/security/tags" xmlns:p="http://primefaces.org/ui">
<f:view>
<h:form>
<!-- some more content -->
<rich:dataTable width="500" id="attendanceList" reRender="scroller"
rows="#{bean.getRowsAmount()}" columnClasses="attendance"
rowClasses="even-row, odd-row"
value="#{bean.getList()}" var="a"
style="width:100%" rendered="#{attendance.renderList}">
<f:facet name="header">
<rich:columnGroup>
<h:column rendered="#{bean.renderColumn}">
<h:commandLink styleClass="order-table-header" value="Column Header" action="#{bean.columnSorting()}" />
</h:column>
<!-- more columns -->
</rich:columnGroup>
</f:facet>
<h:column rendered="#{bean.renderColumn}">
<h:outputText value="#{bean.columnConent}" />
</h:column>
<!-- more columns -->
<f:facet name="footer" id="tot">
<rich:dataScroller id="scroller" for="attendanceList" maxPages="15"
fastControls="hide" page="#{bean.scrollerPage}"
rendered="#{bean.renderScroller}">
<f:facet name="first">
<h:outputText value="First" />
</f:facet>
<f:facet name="last">
<h:outputText value="Last" />
</f:facet>
<f:facet name="previous">
<h:outputText value="Previous" />
</f:facet>
<f:facet name="next">
<h:outputText value="Next" />
</f:facet>
</rich:dataScroller>
</f:facet>
</rich:dataTable>
</h:form>
</f:view>
I found an alternative 我找到了替代方案
I changed the cursor to the loading clock during page load 我在页面加载期间将光标更改为加载时钟
add the following to the rich:dataScroller tag attributes: 将以下内容添加到rich:dataScroller标记属性中:
onbegin="waitCursor(true)" oncomplete="waitCursor(false)"
and the following script 和以下脚本
waitCursor=function(wait){
if (wait) {
document.body.style.cursor = "wait"; // just the clock
//document.body.style.cursor = "url(images/mywaitcursor.cur), progress"; // custom cursor, on non supporting browsers would default to clock
//document.body.style.cursor = "progress"; // arrow and clock (so you can still click anything)
// anyway, if you have defined cursors with CSS for other regions in your page
// this wait cursor will be overriden when hovering over those regions
} else {
document.body.style.cursor = ""; // so it goes back to previous CSS defined value
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.