Question Comment ajouter une classe à une nouvelle ligne dans une base de données jquery?


Comment puis-je ajouter une classe à la ligne que j'ajoute dans le datatable?

Si ce n'est pas possible, comment puis-je utiliser fnRowCallback ou fnDrawCallback changer de classe?

oTable = $('#example').dataTable( {
  "bJQueryUI": true,
  "bSortClasses": false,
  "sDom":'T<"clear">',
  "sPaginationType": "full_numbers",
  "sDom": 'T<"clear"><"fg-toolbar ui-widget-header ui-corner-tl ui-corner-tr ui-helper-clearfix"lfr>t<"fg-toolbar ui-widget-header ui-corner-bl ui-corner-br ui-helper-clearfix"ip>',
  "fnRowCallback": function( nRow, aData, iDisplayIndex ) {

    var oSettings = oTable.fnSettings();
    oSettings.aoData[iDisplayIndex].nTr.className = "gradeX odd";
  }
});

Le code ci-dessus me donne une erreur.

voici comment j'ajoute la ligne:

oTable.fnAddData(arr);

10
2017-07-09 15:22


origine


Réponses:


Essayez de changer votre fnRowCallback à ce qui suit:

"fnRowCallback": function( nRow, aData, iDisplayIndex ) {
  nRow.className = "gradeX odd";
  return nRow;
}

Vous pouvez vous référer à la documentation officielle pour mieux comprendre cette fonction de rappel.


19
2018-01-05 18:59



Vous pouvez ajouter le nom de classe dans vos données comme décrit dans la documentation.

http://www.datatables.net/examples/server_side/ids.html

utilisation DT_RowId pour ajouter un identifiant pour n'importe quelle ligne
utilisation DT_RowClass pour ajouter une classe à n'importe quelle ligne
utilisation DT_RowData pour ajouter un objet de données html5 à une ligne

par exemple:

"Les données": [     {
"DT_RowId": "row_5",
      "first_name": "Airi",
      "last_name": "Satou",
      "position": "comptable",
      "bureau": "Tokyo",
      "start_date": "28 nov 08",
      "salaire": "162 700 $"
    }]


9
2017-10-13 07:15



Essaye ça:

"fnRowCallback": function( nRow, aData, iDisplayIndex, iDisplayIndexFull ) {
            var id = aData[0];
            $(nRow).attr("id",id);
            if ( jQuery.inArray(aData[0], gaiSelected) != -1 )
            {
                $(nRow).addClass('row_selected');
            }
            return nRow;
}

Pour ajouter des lignes à des données, essayez ce code à partir de:

http://datatables.net/examples/api/add_row.html

/* Global var for counter */
var giCount = 1;

$(document).ready(function() {
    $('#example').dataTable();
} );

function fnClickAddRow() {
    $('#example').dataTable().fnAddData( [
        giCount+".1",
        giCount+".2",
        giCount+".3",
        giCount+".4" ] );

    giCount++;
}

4
2018-01-07 01:10



$(document).ready(function() {
    oTable = $('#table_id').dataTable( {"fnInitComplete": after_init} );
} );
function after_init(){
    $("#table_id tbody tr").addClass("gradeA");
}

2
2017-07-19 07:58



La documentation officielle dit:

var table = $('#example').DataTable();

table
    .rows.add( [
        new Pupil( 43 ),
        new Pupil( 67 ),
        new Pupil( 102 )
    ] )
    .draw()
    .nodes()
    .to$()
    .addClass( 'new' );

Lisez s'il vous plaît: rows.add ()


2
2018-06-14 11:46



Cela devrait faire l'affaire:

var r = t.row.add( [
    ....
] ).node();
$(r).css({"color":"red"});

1
2017-08-21 13:22



Après avoir lu la documentation, cela fonctionne pour moi:

var my_dataTable = $('#my-table').DataTable();
my_dataTable.row.add( [
                'Hello',
                'Hello2',
                'Hello3',
                'Hello4'
            ] ).draw().nodes().to$().addClass("my_class");

1
2017-10-04 08:52



Bon, peut-être que je ne comprends pas exactement votre question, mais si vous ajoutiez la ligne, pourquoi ne pas définir la classe avant de l’ajouter? Comme ça, un peu bâclé, exemple:

jQuery("<tr />")
  .html(your_var_containing_the_interior_dom)
  .addClass("yourClass")
  .appendTo(jQuery("#yourTable"))

-4
2017-07-09 19:18