2012-09-11 4 views
0

마지막부터 처음으로 데이터 테이블의 스크롤 바 위치를 설정하는 방법은 무엇입니까?PrimeFaces 데이터 테이블 스크롤바 위치

실제로 저는 아래에서 위로 정보를보고 싶습니다.

<p:dataTable var="c" value="#{MessagingUserBean.inboxDetails1}" scrollable="true" scrollHeight="517" liveScroll="true" emptyMessage="No Message Found" scrollRows="8" scrollWidth="815" > 
+0

역 분개로 수정하겠습니까? – kostja

+0

아니요. 페이스 북처럼 메시징 기능을 사용하고 싶습니다. – Rounak

답변

1

그럼 당신은 당신이 다음 데이터 목록의 끝을 모르는 때문에 liveScroll을 사용하지 않는 시도 할 수 있습니다 : 다음은 내 코드입니다. 이 어쩌면이 옷을 당신의 필요에 따라 시험해보십시오. 그러면 지연되어 dataTable의 맨 아래로 스크롤됩니다.

<h:form prependId="false"> 
      <p:dataTable id="dataTable" var="c" value="#{MessagingUserBean.inboxDetails1}" scrollHeight="517" liveScroll="true" emptyMessage="No Message Found" scrollWidth="815" > 

    //Your dataTable stuff 
     </p:dataTable> 
    </h:form> 
    <script> 
     //Get the scrollheight 
     var s = jQuery('#dataTable .ui-datatable-scrollable-body').prop('scrollHeight'); 

     //Get total size of datatable 
     var o = jQuery('#dataTable .ui-datatable-scrollable-body').prop('offsetHeight'); 

     //calculate how many times it can scrolldown to set your timer 
     var t = Math.ceil(s/o); 
     //Excute scrolldown animation (max scrolldown is scrollHeight - offsetHeight) 
     $('#dataTable .ui-datatable-scrollable-body').animate({scrollTop:s-0}, t*1000);  
    </script> 
+0

은 스크롤바의 위치를 ​​변경하지 않고 항목의 순서 만 정확히 – kostja

+0

입니다. 그것은 입장을 바꾸지 않습니다. – Rounak

+0

그렇다면 질문을 이해하지 못합니다. 데이터 테이블의 맨 아래에 스크롤 막대를 시작 하시겠습니까? – Tankhenk

1

이 작업을 수행하는 몇 가지 자바 스크립트가 필요합니다. "dataTableSelector는"당신의 primefaces 테이블 (예를 들어 styleClass)에 대한 선택이다

var $scrollable = $(dataTableSelector).children('.ui-datatable-scrollable-body')[0]; 
$scrollable.scrollTop = $scrollable.scrollHeight; 

.

물론 이것은 표시하려는 목록의 마지막 요소가 실제로 표시하려는 첫 번째 요소라고 가정합니다.

관련 문제