Могут ли таблицы данных jQuery изменять значения, возвращаемые с сервера для просмотра клиентом?

#jquery #jquery-datatables

#jquery — запрос #таблицы данных #jquery

Вопрос:

Я использую таблицы данных плагина jquery для сортировки таблиц и манипулирования ими. При вызове на стороне сервера мои данные возвращают целое число (0 или 1). Если бы я выполнял простой вызов в php, это было бы просто, но я пытаюсь отобразить «индивидуальный» или «семейный» на основе 0 или 1, возвращаемых с сервера.

Я уверен, что это должно быть сделано в реальной функции Datatables:

 $('#example').datables();
  

Возможно ли отображать строку при наличии целого числа в таблицах данных?

Примечание: манипулирование в самом php-скрипте не является здесь допустимым решением, поскольку вызов строится динамически с самого начала.

Ответ №1:

Да, это можно сделать относительно легко. Я полагаю, что это выполняется по строкам, поэтому лучше всего использовать fnRowCallback при инициализации. Что-то вроде этого (просто образец; я не знаю ваших полных данных):

 "fnRowCallback": function( nRow, aData, iDisplayIndex, iDisplayIndexFull ) {

  /* Create some variables mainly for legibility. */
  var family = aData['familyStatus']; // if using 3D with mDataProp
  // var family = aData[2]; // if using 2D array with index

  var famColumn = 2; // you could do this inline if you really want; I find a variable easier to keep track of
  var visibleString = "individual";

  if (family) { // adjust accordingly if condition isn't properly tested this way (ie. if the truthiness of your "1" isn't panning out
    visibleString = "family"; // default is individual, but if family is true then update the variable
  }
  $('td:eq(' famColumn ')', nRow).text(visibleString);

  return nRow;
}
  

Комментарии:

1. Нет проблем; только что закончил рефакторинг кода; не уверен, видели ли вы обновленную версию.

Ответ №2:

Взгляните на http://datatables.net/usage/callbacks#fnPreDrawCallback это функция, которую вы можете переопределить непосредственно перед построением таблицы. Вы можете поместить свою функцию сюда?

Комментарии:

1. Спасибо за ссылку. Я читал это ранее, но, похоже, из этой документации разработчик знает, что идентификатор столбца «#test», но при создании таблиц данных идентификаторы не определяются таким образом. Я что-то упускаю?