J’utilise jQuery DataTables (version 1.7.6). J’aimerais regrouper deux lignes consécutives afin d’avoir une option d’édition pour les deux lignes.
Voici mon tableau:
column1 column2 Edit Loading data from server column1 column2 Edit
Voici mon script, adopté à partir de la documentation de DataTable sur le groupement de lignes
$(function() { var oTable = $('#specificproduct_table').dataTable({ "aoColumns": [{ "sClass": "nonedit" }, { "sClass": "nonedit" }, { "sClass": "nonedit", "bSortable": false }, ], "bProcessing": true, "bServerSide": true, "bJQueryUI": true, "sPaginationType": "full_numbers", "sAjaxSource": "ajax_shotgun_table", "fnDrawCallback": function(oSettings) { if (oSettings.aiDisplay.length == 0) { return; } var nTrs = $('tbody tr', oSettings.nTable); var iColspan = nTrs[0].getElementsByTagName('td').length; var sLastGroup = ""; for (var i = 0; i < nTrs.length; i++) { var iDisplayIndex = oSettings._iDisplayStart + i; var sGroup = oSettings.aoData[oSettings.aiDisplay[iDisplayIndex]]._aData[0]; if (sGroup != sLastGroup) { var nGroup = document.createElement('tr'); var nCell = document.createElement('td'); nCell.colSpan = iColspan; nCell.className = "group"; nCell.innerHTML = sGroup; nGroup.appendChild(nCell); nTrs[i].parentNode.insertBefore(nGroup, nTrs[i]); sLastGroup = sGroup; } } }, "aoColumnDefs": [{ "bVisible": false, "aTargets": [0] }], "aaSortingFixed": [ [0, 'asc'] ], "aaSorting": [ [1, 'asc'] ], "sDom": 'lfrip' }); });
Je cherche une sortie comme celle-ci:
column1 column2 Edit product A A edit product A 1 A product B B edit product B 1 B product C C edit product C 1 C
pour le moment (1.7.6) dataTables ne supporte pas col ou rowspan
vous pourriez probablement utiliser fnDrawCallback pour parcourir la table et remplacer toutes les deux lignes par deux nouvelles lignes avec un rowspan pour la dernière cellule, car fnDrawCallback est invoquée après le dessin de la table (cela entraînera une mise à jour)
je ne sais pas comment il va gérer le sorting / la recherche
La fonction fnFakeRowspan () peut le faire, probablement
Voici le lien: http://datatables.net/plug-ins/api#fnFakeRowspan