数据表:如何设置选择/突出显示的添加行?

Datatables: how to set added row selected / highligthed?

这不起作用:

var row = testTable.row.add({
             "id": result.data.id,
             "name": result.data.name,
             "description": result.data.description
   }).draw();

   row.nodes().to$().addClass('selected');

怎么了?

原题只是本题的一部分:

当一行添加到table时,应根据当前table顺序在适当的页面和行(页面/行索引)上添加并突出显示。

虽然客户端处理按预期工作: https://jsfiddle.net/fegeb01b/23/

jQuery.fn.dataTable.Api.register('page.jumpToData()', function(data, column) {
  var pos = this.column(column, {
    order: 'current'
  }).data().indexOf(data);
  if (pos >= 0) {
    var page = Math.floor(pos / this.page.info().length);
    //alert("pos: " + pos);
    this.page(page).draw(false);
  }
  return this;
});

$(document).ready(function() {
  GetNumber.num = 0;
  var table = $('#UsersTable').DataTable({
    select: {
      style: 'single',
      info: false
    }
  });

  $('#btn').click(function() {
    var GUID = GenGuid();
    var name = 'name-' + GetNumber();

    var rowAdded = table.row.add([
      GUID,
      name
    ]).draw();

    table.$('tr.selected').removeClass('selected');
    rowAdded.nodes().to$().addClass('selected');
    table.page.jumpToData(GUID, 0);
    var info = table.page.info();

    $('#lbl').text('row ' + "\"" + name + "\"" + ' page(index): ' + info.page + ', row(index): ' + table.$('tr.selected').index());
  });

  $('#UsersTable tbody').on('click', 'tr', function() {
    table.$('tr.selected').removeClass('selected');
    $(this).addClass('selected');
  });

  function GenGuid() {
    var d = new Date().getTime();
    if (typeof performance !== 'undefined' && typeof performance.now === 'function') {
      d += performance.now(); //use high-precision timer if available
    }
    return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
      var r = (d + Math.random() * 16) % 16 | 0;
      d = Math.floor(d / 16);
      return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);
    });
  }

  function GetNumber() {
    return ++GetNumber.num;
  }
});

,相同的代码不适用于服务器端处理。

这里描述了解决方案:

https://datatables.net/forums/discussion/42520/calculate-page-and-row-index-of-an-dynamically-added-row-while-serveside-processing#latest