如何设置primefaces数据表的滚动条位置从最后到第一个?
实际上,我想从下到上查看信息。下面是我的代码:
<p:dataTable var="c" value="#{MessagingUserBean.inboxDetails1}" scrollable="true" scrollHeight="517" liveScroll="true" emptyMessage="No Message Found" scrollRows="8" scrollWidth="815" >
如何设置primefaces数据表的滚动条位置从最后到第一个?
实际上,我想从下到上查看信息。下面是我的代码:
<p:dataTable var="c" value="#{MessagingUserBean.inboxDetails1}" scrollable="true" scrollHeight="517" liveScroll="true" emptyMessage="No Message Found" scrollRows="8" scrollWidth="815" >
好吧,您可以尝试不使用 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>
您将需要一些 javascript 来执行此操作。
var $scrollable = $(dataTableSelector).children('.ui-datatable-scrollable-body')[0];
$scrollable.scrollTop = $scrollable.scrollHeight;
其中“dataTableSelector”是您的 primefaces 表的选择器(例如 styleClass)。
当然,这假设您要显示的列表中的最后一个元素实际上是您要显示的第一个元素。