数据表在排序后获得行位置

时间:2011-11-11 14:49:24

标签: jquery datatables

我正在使用带有分页,排序的jQuery datatables插件。向用户呈现的页面数据不止一页。使用ajax json数据源定期刷新数据表数据。

我从数据库中选择行,并且在该行的while值之后发生更改,因为存在分页因为排序所选行可能会滑到其他页面并且对用户变得不可见,除非他滚动到他的条目所在的页面。

我尝试使用 fnGetPosition(),但它只显示了我在aaData源中的位置。

问题是如何在排序后获取数据表中的行位置,这样我就可以切换到选定条目被标记的适当页面

2 个答案:

答案 0 :(得分:2)

fnSettings()有一个名为aiDisplayMaster的属性,其中包含 fnGetPosition() [0]值的数组,我设法用它来解决这个问题。

答案 1 :(得分:0)

此代码将您带到具有给定行的页面(在我的情况下,它是一个带有类.selectedItem的行的页面)。但是,它使用较新的数据表API。

function moveToPageWithSelectedItem() {
    var numberOfRows = itemsTable.data().length;
    var rowsOnOnePage = itemsTable.page.len();
    if (rowsOnOnePage < numberOfRows) {
        var selectedNode = itemsTable.row(".selectedItem").node();
        var nodePosition = itemsTable.rows({order: 'current'}).nodes().indexOf(selectedNode);
        var pageNumber = Math.floor(nodePosition / rowsOnOnePage);
        itemsTable.page(pageNumber).draw(false); //move to page with the element
    }
}