HTML in cells
If you are using the ES module, import the html function first:
import { Paginator, html } from '@carry0987/paginator';
or use paginatorjs.html(...) if you are using the UMD export.
Then you can use that in formatter function or directly in data array:
Live Editor
const paginator = new Paginator({ columns: [ { name: 'Name', formatter: (cell) => html(`<b>${cell}</b>`), }, 'Email', { name: 'Actions', formatter: (_, row) => html(`<a href='mailto:${row.cells[1].data}'>Email</a>`), }, ], data: Array(5) .fill() .map((x) => [faker.person.fullName(), faker.internet.email(), null]), dataRender: (response) => { let dataHtml = '<ul>'; response.forEach((item, index) => { dataHtml += '<li><span>' + item.join(' : ') + '</span></li>'; }); dataHtml += '</ul>'; document.querySelectorAll('div.list-container')[0].innerHTML = dataHtml; } });
Result
Loading...
note
Using the html function can expose your application to XSS attacks.
Make sure you understand the implications of using this function and always sanitize the user inputs before passing them
to the html function.
Live Editor
const paginator = new Paginator({ columns: ['Name', 'Email', 'Actions'], data: Array(5) .fill() .map((x) => [ faker.person.fullName(), faker.internet.email(), html( "<div style='padding: 2px; border: 1px solid #ccc;border-radius: 4px;'>" + '<center>hello!</center>' + '</div>' ), ]), dataRender: (response) => { let dataHtml = '<ul>'; response.forEach((item, index) => { dataHtml += '<li><span>' + item.join(' : ') + '</span></li>'; }); dataHtml += '</ul>'; document.querySelectorAll('div.list-container')[1].innerHTML = dataHtml; } });
Result
Loading...