2012-09-14 15 views
5

Ho un datatable scorrevole con oltre 100 record quando aggiungo un nuovo record (al di fuori dell'area di visualizzazione predefinita) e aggiorno il datatable dataTable viene caricato dal record 0, mentre ho bisogno di vista datatable al posizione precedente.Barra di scorrimento DataTable di PrimeFaces nella posizione desiderata

Il mio codice dataTable

<p:dataTable id="DataTable" value="#{dtMB.selectDataModel}" var="test" scrollable="TRUE" scrollHeight="500" styleClass="day-column2" selectionMode="single" > 
<ui:insert name="TableInsert" > 
     <ui:include src="test.xhtml" /> 
</ui:insert> 
</p:dataTable> 

pulsante di comando (all'interno di una finestra di dialogo) che aggiorna il Datatable

<p:commandButton id="saveNew" value="Save" type="submit" process="@parent" onsuccess="addNew.hide()" action="#{dtMB.addNew()}" update=":FORM:usrMsg :FORM:TABView:DataTable"/> 

momento ho bisogno di scorrere indietro al record n'th per vedere ciò che è stato aggiunto o fare aggiornamenti ecc. Esiste qualche opzione in primeface datatable, o ho bisogno di scrivere un javascript per lo stesso.

risposta

7

ho fatto quanto sopra utilizzando il seguente post

primeface datatable scrollbar position

datatable scroll

mio codice

sceneggiatura

function saveScrollPos() { 
var scrollPos = jQuery('#receptionFORM\\:receptionTV\\:scheduleDataTable .ui-datatable-scrollable-body').prop('scrollTop'); 
document.getElementById('receptionFORM:scrollPos').value = scrollPos; 
} 

function autoScroll() { 
var scrollPos = document.getElementById('receptionFORM:scrollPos').value; 
jQuery('#receptionFORM\\:receptionTV\\:scheduleDataTable .ui-datatable-scrollable-body').animate({scrollTop:scrollPos}, scrollPos); 
} 

HiddenInput

<h:inputHidden id="scrollPos" /> 

In caso di Ajax fila DataTable selezionare

onstart="saveScrollPos()" 

Il codice di seguito in CommandButton, mentre il risparmio record di

oncomplete="autoScroll()" 
+0

mi ha aiutato a fissare un bug. Sempre grato :) – Sabarish

Problemi correlati