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

最佳答案

您可以使用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进行设置:

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


在这里,divId显然是您要滚动的<div>的ID。

关于javascript - 数据表滚动,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2601171/

10-12 13:30