inteve / datagrid
DataGrid component for Nette.
Fund package maintenance!
Other
Installs: 6 297
Dependents: 1
Suggesters: 0
Security: 0
Stars: 2
Watchers: 2
Forks: 0
Open Issues: 0
Requires
- php: >=7.2.0
- czproject/assert: ^1.3
- nette/application: ^3.0
- nette/forms: ^3.0
- nette/utils: ^3.0 || ^4.0
Requires (Dev)
- mbohuslavek/leanmapper-query: ^1.2
- nette/tester: ^2.0
README
DataGrid component for Nette.
Installation
Download a latest package or use Composer:
composer require inteve/datagrid
Inteve\Datagrid requires PHP 7.2.0 or later.
Usage
In presenter:
class MyPresenter extends Nette\Application\UI\Presenter { protected function createComponentGrid() { $datasource = new Inteve\DataGrid\DataSources\LeanMapperQuery($this->repository->queryAll(), $this->mapper); $grid = new Inteve\DataGrid\DataGrid($datasource); $grid->setTemplateFile(__DIR__ . '/@grid.latte'); // optional $grid->setItemsOnPage(20, TRUE); // optional $grid->addTextColumn('title', 'Title') ->setCustomRender(function (Entity\Post $post) { $label = Html::el(); $label->addText($post->title); return $label; }) ->setSortable(); $grid->addLinkColumn('url', 'URL'); $grid->addDateColumn('date', 'Date') ->setSortable(); $grid->addNumberColumn('views', 'Views') ->setSortable() ->setDecimals(1) ->setValueProvider(function (Entity\Post $post) { return max(1, $post->views); }); $grid->addAction('edit', 'Upravit', $this->lazyLink('edit')); $grid->addAction('delete', 'Smazat', $this->lazyLink('delete!')); $grid->addTextFilter('title', 'Title'); $grid->addTextFilter('url', 'URL'); $grid->setDefaultSort(array( 'date' => 'DESC', 'title' => 'ASC', )); return $grid; } }
In template:
{control grid}
License: New BSD License
Author: Jan Pecha, https://www.janpecha.cz/