数据表滚动

时间:2010-04-08 15:27:09

标签: javascript jsf

我有一个dataTable,如果记录超过,我正在使用scrollBar,让我们说20。问题是回发后div滚动条到顶部。无论如何我可以在回发后修复div的滚动重置。感谢。

1 个答案:

答案 0 :(得分:2)

您可以使用element.scrollTop在Javascript中获取并设置元素的当前滚动位置。使用表单的onsubmit处理程序将其保存为隐藏的输入元素:

<h:form id="formId" onsubmit="saveScrollPos()">
    <h:inputHidden id="scrollPos" />
    ...

使用此功能

function saveScrollPos() {
    var scrollPos = document.getElementById('divId').scrollTop;
    document.getElementById('formId:scrollPos').value = scrollPos;
}

这种方式可用作名为formId:scrollPos的请求参数。您可以使用Javascript在onload期间设置它:

window.onload = function() {
    var scrollPos = <h:outputText value="#{param['formId:scrollPos']}" />;
    document.getElementById('divId').scrollTop = scrollPos;
}

此处divId显然是您要滚动的<div>的ID。