inteve /datagrid
Nette 的 DataGrid 组件
v1.2.0
2024-01-05 11:35 UTC
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
Nette 的 DataGrid 组件
安装
下载最新包 Download a latest package 或使用 Composer
composer require inteve/datagrid
Inteve\Datagrid 需要 PHP 7.2.0 或更高版本。
使用方法
在演示者中
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; } }
在模板中
{control grid}
许可证: 新 BSD 许可证
作者: Jan Pecha, https://www.janpecha.cz/