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 滚动插件

如果我在没有数据表的情况下使用它,这很好用,但两者不能同时工作。

有任何想法吗?

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 回答