7
votes

JQuery Plugin DataTable: Utiliser des rangées dans Tody provoque un faux

J'utilise un jQuery code> plug-in appelé datables code>:

http://www.datatables.net/ p>

Le plugin ne prend pas en charge les rangées dans TODY P>

<tr class="colorrow">   
    <td id="greater" rowspan="3">TMMS</td> 
    <td>Case Volume</td> 
    <td>0</td> 
    <td>0</td> 
    <td>0</td> 
    <td>1</td> 
    <td>1</td>
</tr>


0 commentaires

4 Réponses :



0
votes

La fonction FNFAKEROWSPAN sur le site de DataTables.net ne fonctionnait pas bien pour moi. Au lieu de cela, j'ai écrit une nouvelle version:

https://gist.github.com/4155754

pour l'utiliser, ajoutez des données-rowspan = "xxx" et cache-cache = "true" attributs sur vos cellules, comme celui-ci: p> xxx pré> Idéalement. Ce script calculerait automatiquement les cellules à cacher, mais j'avais déjà cette information, alors n'a pas écrit cela dans ce script. P>

Appelez-le comme d'habitude: P>

$('#table').dataTable().fnFakeRowspan();


0 commentaires

0
votes

Vous pouvez masquer les cellules et ajouter rowspan em> attributs après la redessinement de la table

dans la configuration Ajoutez le paramètre DrawCallback em>: p>

/**
 * mergeCells
 * Merges cells with the same wording
 * 
 * @param {Object} api - dataTable().api()
 * @param {Array} rows - array of selected TR element
 * @param {Number} rowIndex - index of column
 * 
 **/
function mergeCells(rows, rowIndex) {

    var last = null,
        currentRow = null,
        k = null,
        gNum = 0,
        refLine = null;

    rows.each( function (line, i) {
        currentRow = line.childNodes[rowIndex];

        if ( last === currentRow.innerText ) {
            currentRow.setAttribute('style', 'display: none');
            ++k;

            return; //leave early
        }

        last = currentRow.innerText;

        if ( i > 0 ) {
            rows[refLine].childNodes[rowIndex].rowSpan = ++k;
            ++gNum;
        }

        k = 0; refLine = i;          
    });

    // for the last group
    rows[refLine].childNodes[rowIndex].rowSpan = ++k;
}


0 commentaires

2
votes

Essayez ceci. Appliquer simplement CSS "Affichage: Aucun;" où vous voulez appliquer des rangots.

<script type="text/javascript">
      $(document).ready(function() {
            $('#example').DataTable();
      });
</script>


0 commentaires