[примечание: следующий ответ для DataTables 1.9x и ниже.1.10 изменил правила именования методов и несколько других вещей.Методы 1.9x доступны, но устарели и неизбежно будут полностью удалены.]
Если безопасно удалить их "оптом" (т. Е. Если вы разрабатываете функцию escape-строки, которая не влияет на валидность JSON)Вы можете сделать это, используя функцию fnServerData:
"fnServerData": function ( sSource, aoData, fnCallback ) {
$.ajax( {
"dataType": 'json',
"type": "GET",
"url": sSource,
"data": aoData,
"success": function (data) {
// run your escape string function to modify 'data'
fnCallback(data); // or fnCallback(newData) if you used new variable
}
});
}
Если вы не уверены в безопасности его оптовой модификации, вы можете сделать это построчно с помощью fnRowCallback:
"fnRowCallback": function( nRow, aData, iDisplayIndex, iDisplayIndexFull ) {
var cellData = myEscaper(aData[0]); // where myEscaper() is your own custom function
$('td:eq(0)').text(cellData);
return nRow;
}
В этом примере я изменяю только первую ячейку.Если это применимо ко всем ячейкам, вы, вероятно, захотите написать итератор, который пройдет всю строку, чтобы выполнить преобразование.Если это применимо только к некоторым ячейкам, вы можете обрабатывать их по одной за раз.
Обратите внимание, что aData [0] и td: eq (0) только по совпадению имеют одинаковый индекс (0).Если у вас есть скрытые столбцы, совпадение не обязательно будет.Кроме того, если вы используете mDataProp, вам также придется с этим справиться.