jQuery DataTables: Comment ajouter un identifiant de ligne à chaque ligne ajoutée dynamiquement?

Résumé

Je suis à l'aide de l'excellent plugin jQuery dataTables de http://www.datatables.net. Dans mon script, je suis l'ajout dynamique de lignes en fonction d'un événement de tir à l'aide de fnAddData. À l'aide de fnRowCallbackj'ai ajouter un ID de ligne unique. Cette échoue parfois et de ne pas ajouter un numéro de rangée. Dans un test de 46 ajouts de lignes, généralement de 6 à 8 lignes ne peuvent pas obtenir un numéro de rangée.

Ajouter une Ligne de la fonction

function ps_ins(row)
{
  var rowArray = row.split('|');
  row = rowArray;
  var alarmID = parseInt(row[1],10);

  $('#mimicTable').dataTable().fnAddData([
    alarmID, 'col2', 'col3', 'col4',
    'col5', 'col6', 'col7'
  ]);
}

Lignes sont ajoutées à la table correctement. Le test, je suis en cours d'exécution ajoute 46 lignes, et apparaît comme prévu.

Ajouter l'ID de ligne

Je suis en train d'ajouter un ID unique à chaque ligne afin que je puisse par la suite modifier une ligne spécifique et s'y référer dans la dataTable du cache à l'aide d'une combinaison de fnGetRows et .le filtre.

Je suis en train de faire cela à l'aide de fnRowCallback au cours de l'étape d'initialisation. J'ai gardé tous les autres paramètres, juste au cas où il n'y a rien là-bas qui pourrait avoir un impact sur le problème.

  $('#mimicTable').dataTable({
    "sDom": 'lip<"mimicSpacer">f<"numUnAck">rt',
    "sScrollY": "365px",
    "aaSorting": [[4,'desc'],[5,'desc']],
    "iDisplayLength": 15,
    "aLengthMenu": [[15, 50, 100, -1], [15, 50, 100, 'All']],
    "bAutoWidth": false,
    "aoColumns": [
      null,
      { "sWidth": "20%" },
      { "sWidth": "22%" },
      { "sWidth": "9%" },
      { "sWidth": "9%" },
      { "sWidth": "20%" },
      { "sWidth": "20%" }
    ],
    "fnRowCallback": function( nRow, aData, iDisplayIndex, iDisplayIndexFull) {
      $(nRow).attr("id",'alarmNum' + aData[0]);
      return nRow;
    }
  });

Un console.log de l'objet dataTable montre:
jQuery DataTables: Comment ajouter un identifiant de ligne à chaque ligne ajoutée dynamiquement?

Comme vous pouvez le voir, n ° 14 a l'id de ligne et aussi le bon rowStripe classe. #15 (et au-delà) ne fonctionne pas.

Alors, pourquoi est fnRowCallback pas de tir à chaque fois qu'une ligne est ajoutée, seulement parfois? Peut-être il ya une meilleure façon d'ajouter un ID de ligne lorsqu'une ligne est ajoutée?

source d'informationauteur psynnott