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

dataListの終わりがわからないため、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>
于 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 に答える