我正在使用primefaces 5.1
和jquery scrolltoview来自动滚动到primeface dataTable
上选择的最后一行,当页面加载但不起作用时,这是我的代码:
<h:body onload="remoteAutoScroll();">
<ui:composition template="/template/my_template.xhtml">
<ui:define name="metadata">
<!-- another form here -->
<h:form id="form">
<p:growl id="growl" autoUpdate="true" showDetail="true" sticky="true" />
<p:poll interval="300" listener="#{listadoAvaluosBean.actualizarTabla}" update="avaluoTabla" />
<p:panel id="avaluoTabla"
style="width: 100%;margin-bottom:10px;background: transparent;">
<p:remoteCommand name="remoteAutoScroll" oncomplete="autoScroll();" autoRun="true" />
<p:dataTable
id="tabla_Avaluos"
var="avaluo"
value="#{bean.avaluos}"
selection="#{listadoAvaluosBean.avaluo}" rowKey="#{avaluo.id}"
selectionMode="single" sortBy="#{avaluo.fechaEstado}"
sortOrder="descending"
rowStyleClass="#{avaluo.semaforo.estadoSemaforo}"
resizableColumns="true"
scrollable="true"
scrollWidth="1400"
scrollHeight="250"
scrollRows="10"
liveScroll="true"
emptyMessage="No tienes solicitudes"
style="clear: right; font-size: 11px !important; margin-top: 5px;">
<p:ajax event="rowSelect" update=":form ..somefields" listener="#{bean.mostrarMenuAccion}" />
<!-- some columns here -->
</p:dataTable>
</p:panel>
<input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}" />
</h:form>
<!-- more things -->
<script>
/*<![CDATA[*/
function autoScroll(){
console.log("calling to auto scroll...");
$(function(){
$(function(){
$("#form\\:tabla_Avaluos tr:last").scrollintoview();
});
});
}
/*]]>*/
</script>
</ui:define>
</ui:composition>
当我加载页面时,查看firebug console
此打印:
因此,当我加载页面时,页面永远不会自动滚动,因此如果在firebug console
autoscroll
中执行命令,则if(err)
{
debugLog('[DB] Error when loading ' + remoteClient.name + "'s (" + remoteClient.networkId + ') data: ' + err.code);
} else if (rows.length === 0) {
debugLog('Nothing returned from database');
} else {
// ...
}
工作。
我想知道我做错了什么?,
我该如何解决?