0

固定列と固定行に固定列が追加されたデータテーブルjQueryプラグインを使用しているテーブルがあります。

プラグインは私にとってはうまく機能しています。ここで、テーブルの読み込み時に特定のセルにスクロールしたいと考えています。私はセルのIDを持っています。

私は次のことを試しました:

$(document).ready(function () {
    var oTable = $('#masterGridTable').dataTable({
        "sScrollY": "255px",
        "sScrollX": "100%",
        "sScrollXInner": "150%",
        "bScrollCollapse": false,
        "bPaginate": false,
        "bFilter": false,
        "bInfo": false,
        "fnInitComplete": function (oSettings, json) {

        }
    });
    new FixedColumns(oTable);
    var scrollToView = document.getElementById('selectedElementId');
    if (scrollToView)
        scrollToView.scrollIntoView(true);
});

動作しますが、scrollIntoView メソッドが画面中央のセルをスクロールしないという問題があります。

jQuery scroll pluginも試してみました。

これは、データテーブルなしで使用すると正常に機能しますが、両方が同時に機能しません。

何か案は?

4

1 に答える 1

1

それを解決しました。これが私の解決策です。jquery scrollTo プラグインを使用してテーブルをスクロールしました。

$(document).ready(function() {
             //var selectedElementId = 'selectedElementId';
            var oTable = $('#masterGridTable').dataTable( {
                "sScrollY": "255px",
                "sScrollX": "100%",
                "sScrollXInner": "150%",
                "bScrollCollapse": false,
                "bPaginate": false,
                "bFilter": false,
                "bInfo": false,
                "bStateSave": true,
                "fnInitComplete": function (oSettings, json) {
                    var elementV = '{!selectedElementId}';
                    if(elementV!= null && elementV.trim()!= ''){
                        elementV = elementV.split(':').join('\\:');
                        $('.dataTables_scrollBody').scrollTo('.'+elementV,2000,{offset: {top:0, left:-130} });
                    }
                }
            } );
            new FixedColumns( oTable ); 
            var scrollToView = document.getElementById('{!selectedElementId}');  
            if(scrollToView)
            scrollToView .scrollIntoView(true);

        } );

以前は、テーブルの ID を使用してスクロールしようとしていました。しかし、Datatablesプラグインが機能すると、テーブルがさまざまな部分に分割され、ヘッダーが固定され、列とテーブル本体が別のdivに固定されるため、scrollToプラグインで「datatables_scrollBody」を使用し、セルのクラスをスクロールしました。上部のオフセットは 0 で、左側のオフセットは -130 です。これは、テーブルの合計幅から差し引く必要がある最初の固定列の幅です。それが誰かに役立つことを願っています。:)

于 2013-09-13T11:07:46.680 に答える