jQuery DataTables - page d'une ligne donnée
J'ai un dataTable avec des centaines d'articles avec un fixe de 50 iDisplayLength option. J'ai besoin d'être en mesure de trouver ce que la page une ligne spécifique est à l'intérieur de l'chargé des nœuds.
Tout ce que j'ai géré est d'obtenir la position, malheureusement, que l'interne de la position de ligne ne correspondent pas à l'index de ligne avec le courant de tri et de filtrage.
Comme un exemple ici sur jsFiddle. Je peux récupérer la position ou de la ligne #tr4 (position 3), mais la iDisplayStart j'ai besoin est de 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.
Vous devez vous connecter pour publier un commentaire.
J'ai fini par écrire un petit dataTable plugins pour elle:
Passer dans le jerame et il va paginer à celle de l'élément de la page.
J'ai écrit une fonction pour vous déplacer à la page avec la ligne de donnée. Toutefois, il s'appuie sur de nouvelles API. La partie à l'intérieur de la si est ce que vous voulez.
En 1.10, il vous suffit de faire:
En supposant que vous travaillez avec un
tr
nœud.modifier - désolé qui obtient la position dans l'ensemble de données. Vous devez utiliser les informations de
page.info().len
à diviser ensuite l'index et obtenir le numéro de la page.Utilisation fnPagingInfo
http://datatables.net/plug-ins/api
Donné variables
table
ettr
:Noter que vous ne pourriez pas besoin d'appliquer la recherche actuelle, si vous n'utilisez pas de filtrage.
J'avais besoin de programmation pour trouver une ligne dans la table de données, de la pagination de la table à la page de la ligne, et d'étendre la ligne. Je sais que certaines personnes ont créé des bibliothèques personnalisées à manipuler, mais je m'attends à de telles fonctionnalités de base de la boîte. En tout cas, voici ce que j'ai fait. Ce n'est pas l'idéal, mais peut aider.
chargé que vous voyez sur la page en cours.
que je pourrais récupérer. Je sais que je pourrais le faire avec quelque chose comme
var pageSize = oTable.fnSettings()._iDisplayLength; Mais je préfère
pas de référence interne de la mise en œuvre d'un objet.
Voici l'exemple de code: