2010-04-08 5 views
1

J'ai une table de données et j'utilise scrollBar si les enregistrements dépassent, disons 20. Le problème est après la publication de la barre de défilement div est en haut. Y at-il de toute façon je peux fixer la réinitialisation du défilement de div après la publication. Merci.scrollable datatable

Répondre

2

Vous pouvez obtenir et définir la position de défilement actuelle de l'élément en Javascript en utilisant element.scrollTop. Exploitez onsubmit gestionnaire de la forme de l'enregistrer comme un élément d'entrée cachée:

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

avec cette fonction

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

De cette façon, il est disponible en tant que paramètre de requête avec le nom formId:scrollPos. Vous pouvez utiliser le Javascript pour le régler au cours onload:

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

Ici, le divId est évidemment l'ID du <div> que vous souhaitez faire défiler.