5

新しいレコード (デフォルトの表示可能領域の外側) を追加すると、100 以上のレコードを持つスクロール可能な dataTable があり、dataTable がレコード 0 から読み込まれるデータテーブルを更新しますが、前の位置にデータテーブル ビューが必要です。

私のdataTableコード

<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を書く必要があります.

4

1 に答える 1

7

私は次の投稿を使用して上記を行いました

primeface datatable スクロールバーの位置

データテーブルスクロール

私のコード

脚本

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()"
于 2012-10-02T23:53:44.937 に答える