2012-09-11 41 views
0

如何設置primefaces數據表的滾動條位置從last到first?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

不,我想做一個像facebook一樣的消息功能。 – Rounak

回答

1

那麼你可以嘗試不使用liveScroll,因爲你不知道dataList的結束。試試這個,也許這適合你的需求。這將會延遲到你的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

正好是kostja。它不改變位置。 – Rounak

+0

那麼我不明白這個問題。你想啓動數據表底部的滾動條嗎? – Tankhenk

1

您將需要一些JavaScript來做到這一點。

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

其中「dataTableSelector」是您的primefaces表(例如styleClass)的選擇器。

當然,這裏假設列表中的最後一個元素實際上是您要顯示的第一個元素。