Ublaboo Datagrid – export renderer
- Šaman
- Člen | 2635
Ahoj, potřebuji v Datagridu mít vlastní renderer (zkrácení nějakého sloupce s dlouhou hodnotou), ale v exportu tohle zkracování nechci. Je možné definovat buď dva různé renderery (pro zobrazení a jiný pro export), nebo v jednom rendereru zjistit, jestli právě vytvářím export, či ne? Díky.
- Pavel Janda
- Člen | 977
@Šaman Určitě jo. Pro export můžeš definovat zvlášť sloupce, viz https://ublaboo.org/datagrid/export:
$columnName = new Ublaboo\DataGrid\Column\ColumnText($grid, 'name', 'name', 'Name');
$columnEven = (new Ublaboo\DataGrid\Column\ColumnText($grid, 'name', 'even', 'Even ID (yes/no)'))
->setRenderer(function($item) { return $item['id'] % 2 ? 'No' : 'Yes'; });
$grid->addExportCsv('Csv export', 'examples.csv')
->setTitle('Csv export')
->setColumns([
$columnName,
$columnEven
]);
Takže být tebou udělám nějakou factory na všechny sloupce a ty si předáš jak do gridu tak do exportu. Akorát u exportu bude místo zkráceného sloupce sloupec jiný, nezkrácený.