gpt4 book ai didi

jQuery DataTables - 获取给定行的页面

转载 作者:行者123 更新时间:2023-12-03 22:47:04 24 4
gpt4 key购买 nike

我有一个包含数百个项目的数据表,具有固定的 50 iDisplayLength 选项。我需要能够找到加载的节点中特定行所在的页面。

我所做的只是获取位置,不幸的是,内部行位置与当前排序和过滤的行索引不对应。

jsFiddle 为例。我可以检索位置或行 #tr4(位置 3),但我需要的 iDisplayStart 是 2。

<table id="example">
<thead>
<tr>
<th>ID</th>
<th>Rendering engine</th>
<th>Browser</th>
<th>Platform(s)</th>
<th>Engine version</th>
<th>CSS grade</th>
</tr>
</thead>
<tbody>
<tr id="tr1" class="odd gradeX">
<td>1</td>
<td>Trident</td>
<td>Internet Explorer 4.0</td>
<td>Win 95+</td>
<td class="center"> 4</td>
<td class="center">X</td>
</tr>
<tr id="tr2" class="even gradeC">
<td>2</td>
<td>Trident</td>
<td>Internet Explorer 5.0</td>
<td>Win 95+</td>
<td class="center">5</td>
<td class="center">C</td>
</tr>
<tr id="tr3" class="odd gradeA">
<td>3</td>
<td>Trident</td>
<td>Internet Explorer 5.5</td>
<td>Win 95+</td>
<td class="center">5.5</td>
<td class="center">A</td>
</tr>
<tr id="tr4" class="even gradeA">
<td>4</td>
<td>Trident</td>
<td>Internet Explorer 6</td>
<td>Win 98+</td>
<td class="center">6</td>
<td class="center">A</td>
</tr>
<tr id="tr5" class="odd gradeA">
<td>5</td>
<td>Trident</td>
<td>Internet Explorer 7</td>
<td>Win XP SP2+</td>
<td class="center">7</td>
<td class="center">A</td>
</tr>
</tbody>
</table>

var oTable = $("#example").dataTable({
"sDom": '<"clear">rtip<"clear">',
"bPaginate": true,
"iDisplayLength": 2,
});

var row = $(oTable.fnGetNodes()).filter("#tr4");
console.log(row[0]);

var position = oTable.fnGetPosition(row[0]);
console.log(position);

console.log(oTable.fnSettings()._iDisplayStart);;

// position is 3 but the page displayStart I need is 2.

最佳答案

我最终为其编写了一个小型数据表插件:

// get the page of a given item in order to paginate to it's page on load
$.fn.dataTableExt.oApi.fnGetPageOfRow = function (oSettings, iRow) {
// get the displayLength being used
var displayLength = oSettings._iDisplayLength;

// get the array of nodes, sorted (default) and using current filters in place for all pages (default)
// see http://datatables.net/docs/DataTables/1.9.beta.1/DataTable.html#%24_details for more detals
var taskListItems = this.$("tr", { "filter": "applied" });

// if there's more than one page continue, else do nothing
if (taskListItems.length <= displayLength) return;

// get the index of the row inside that sorted/filtered array
var index = taskListItems.index(iRow);

// get the page by removing the decimals
var page = Math.floor(index / displayLength);

// paginate to that page
this.fnPageChange(page);
};

传入 iRow,它将分页到该项目的页面。

关于jQuery DataTables - 获取给定行的页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16826580/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com