0

如何设置primefaces数据表的滚动条位置从最后到第一个?

实际上,我想从下到上查看信息。下面是我的代码:

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

2 回答 2

1

好吧,您可以尝试不使用 liveScroll,因为您不知道 dataList 的结尾。试试这个,也许这适合你的需要。这将延迟滚动到数据表的底部。

<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>
于 2012-09-11T10:31:04.603 回答
1

您将需要一些 javascript 来执行此操作。

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

其中“dataTableSelector”是您的 primefaces 表的选择器(例如 styleClass)。

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

于 2012-09-11T12:36:28.710 回答