Ответ 1
[edit: обратите внимание, что в следующем коде и объяснении используется предыдущий 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) Как и выше, но вместо добавления целого тега вы просто обновляете класс с изображением в качестве фона. Вы сделали бы это для изображений, которые являются повторяющимися элементами, а не одноразовыми или уникальными частями данных.