[править: обратите внимание, что в следующем коде и объяснении используется предыдущий API DataTables (1.9 и ниже?); он легко переводится в текущий API (в большинстве случаев просто отбросьте венгерскую нотацию (например, «fnRowCallback» просто становится «rowCallback»), но я еще этого не сделал. Обратная совместимость все еще на месте, я считаю по возможности ищите новые соглашения]
Оригинальный ответ следует:
То, что Даниил говорит, правда, но не обязательно говорит, как это делается. И есть много способов. Вот основные из них:
1) Источник данных (сервер или иным образом) предоставляет полный тег изображения как часть набора данных. Не забудьте экранировать любые символы, которые необходимо экранировать для действительного JSON
2) Источник данных предоставляет одно или несколько полей с необходимой информацией. Например, поле с именем «ссылка на изображение» просто имеет часть Images/PictureName.png
. Затем в fnRowCallback вы используете эти данные для создания тега изображения.
"fnRowCallback": function( nRow, aData, iDisplayIndex, iDisplayIndexFull ) {
var imgLink = aData['imageLink']; // if your JSON is 3D
// var imgLink = aData[4]; // where 4 is the zero-origin column for 2D
var imgTag = '<img src="' + imgLink + '"/>';
$('td:eq(4)', nRow).html(imgTag); // where 4 is the zero-origin visible column in the HTML
return nRow;
}
3) Как и выше, но вместо добавления целого тега вы просто обновляете класс с изображением в качестве фона. Это можно сделать для изображений, которые являются повторяющимися элементами, а не одноразовыми или уникальными частями данных.