【问题标题】:PrimeFaces dataTable scrollbar at desired positionPrimeFaces dataTable 滚动条在所需位置
【发布时间】:2012-09-14 19:07:18
【问题描述】:

当我添加一条新记录(在默认可视区域之外)并更新从记录 0 加载的数据表时,我有一个包含 100 多条记录的可滚动数据表,而我需要在前一个位置查看数据表。

我的数据表代码

<p:dataTable id="DataTable" value="#{dtMB.selectDataModel}" var="test" scrollable="TRUE" scrollHeight="500" styleClass="day-column2" selectionMode="single" >
 <ui:insert name="TableInsert" >
        <ui:include src="test.xhtml" />
 </ui:insert>   
</p:dataTable>

更新数据表的命令按钮(在对话框内)

<p:commandButton id="saveNew"  value="Save" type="submit" process="@parent" onsuccess="addNew.hide()"  action="#{dtMB.addNew()}"   update=":FORM:usrMsg :FORM:TABView:DataTable"/>

目前我需要滚动回第 n 条记录以查看添加的内容或进行任何更新等。 primeface 数据表中是否有任何选项,或者我需要为此编写一个 javascript。

【问题讨论】:

    标签: jsf-2 primefaces


    【解决方案1】:

    我使用以下帖子完成了上述操作

    primeface datatable scrollbar position

    datatable scroll

    我的代码

    脚本

    function saveScrollPos() {
    var scrollPos = jQuery('#receptionFORM\\:receptionTV\\:scheduleDataTable .ui-datatable-scrollable-body').prop('scrollTop');
    document.getElementById('receptionFORM:scrollPos').value = scrollPos;
    }
    
    function autoScroll() {
    var scrollPos = document.getElementById('receptionFORM:scrollPos').value;
    jQuery('#receptionFORM\\:receptionTV\\:scheduleDataTable .ui-datatable-scrollable-body').animate({scrollTop:scrollPos}, scrollPos); 
    }
    

    隐藏输入

    <h:inputHidden id="scrollPos" />
    

    在数据表行选择的Ajax事件中

    onstart="saveScrollPos()"
    

    保存记录时CommandButton中的以下代码

    oncomplete="autoScroll()"
    

    【讨论】:

    • 帮助我修复了一个错误。永远心存感激:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-11
    • 1970-01-01
    • 1970-01-01
    • 2011-04-03
    • 2012-12-10
    • 1970-01-01
    • 2013-05-02
    相关资源
    最近更新 更多