2012-09-11 40 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)的选择器。

当然,这里假设列表中的最后一个元素实际上是您要显示的第一个元素。