For general infos, see the datatables.net documentation. https://datatables.net/manual/data/renderers
Example Renderer Function
function (data, type, row) {
return data;
}
We use predefinded types for our datatable configurations as follows:
Build in Types:
- Number
- Text
- Date
- Adress
- Time
- Phone
- RichText
- File
- DateTime
- Boolean
- Currency
NUMBER – ID1
Renderfunction for Numbers
TEXT – ID2
Renderfunction for text
DATE – ID3
Renderfunction for E-Mail Addresses
ADDRESS – ID4
Renderfunction for Fields
TIME – ID5
Renderfunction for Time
PHONE – ID6
Renderfunction for Phone Numbers
RTE – ID7
Renderfunction for RichText
EMAIL – ID8
Renderfunction for E-Mail Addresses
FILE – ID9
Renderfunction for Files
DATETIME – ID10
Renderfunction for DateTime
BOOLEAN – ID11
Renderfunction for Boolean Values.
Value 0 | ![]() |
Value 1 | ![]() |
EMAIL – ID12
Renderfunction for currency euro
But you can easyl build your own render function and add it in the DataTable Field Settings.
Example Function to Render a Field with the JavaScript Number Format for Euro
function (data, type, row) {
if (type == 'sort') {
return data;
}
if (data) {
const formatter = new Intl.NumberFormat('de-DE', {
style: 'currency',
currency: 'EUR'
})
return formatter.format(data);
}
return data;
}
Hide a button when a specific field has a value
Example Hide Button if Row Column (end) is not null
function (data, type, row) {
if(row.end !== null) {
return "";
}
return data;
}
Example DateString
function (data, type, row) {
if (type == 'sort') {
return data;
}
if (data) {
// Format: 20240313133754Z
const datePattern = /^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})Z$/;
const match = data.match(datePattern);
if (match) {
const [_, year, month, day, hours, minutes, seconds] = match;
const date = new Date(Date.UTC(year, month - 1, day, hours, minutes, seconds));
// Format as German locale date
return date.toLocaleString('de-DE', {
year: 'numeric',
month: '2-digit',
day: '2-digit',
hour: '2-digit',
minute: '2-digit',
second: '2-digit',
timeZone: 'UTC'
});
}
}
return data;
}
Example FormatDate
Converts a MySQL date (e.g., 2025-01-01) into a German short date format with weekday (e.g., Di, 28.11).
function (data, type, row) {
if (type == 'sort') {
return data;
}
if (data) {
const date = new Date(data.replace(' ', 'T'));
return date.toLocaleDateString('de-DE', {
weekday: 'short',
day: '2-digit',
month: '2-digit'
});
}
return data;
}
Example Render Icons
function (data, type, row) {
// To make ordering working on this column
if (type == "sort") {
return data;
}
if (data == '1') {
return "<i class='fas fa-eye' style='color: green' />";
}
else if (data == '2') {
return "<i class='fas fa-chevron-circle-down' style='color: orange' />";
}
return "<i class='fa fa-times' style='color: red' />";
}
Example Render Badges
function (data, type, row) {
if (type == "sort") {
return data;
}
if (data == null) {
return data;
}
let badgeClass = "success";
let values = data.split(',');
if (! values[1]) {
maxCnt = "-";
}
else {
if ( ( values[0] / values[1]) > 1.0) {
badgeClass = "danger";
}
else if ( ( values[0] / values[1]) > 0.8) {
badgeClass = "warning";
}
}
return "<span class='badge badge-" + badgeClass + "'>" + values[0] + "/" + values[1] + "</span>";
}
Example Render Custom DateTime
dd.mm.yyyy hh:mm
function (data, type, row) {
if (type == 'sort') {
return data;
}
if (data) {
const date = new Date(data.replace(' ', 'T'));
return date.toLocaleDateString('de-DE', {
day: '2-digit',
month: '2-digit',
year: 'numeric',
}) + ' ' + date.toLocaleTimeString('de-DE', {
hour: '2-digit',
minute: '2-digit',
hour12: false,
});
}
return data;
}