inteve/datagrid

Nette 的 DataGrid 组件

资助包维护!
其他

v1.2.0 2024-01-05 11:35 UTC

This package is auto-updated.

Last update: 2024-09-05 13:04:47 UTC


README

Build Status Downloads this Month Latest Stable Version License

Nette 的 DataGrid 组件

Donate

安装

下载最新包 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/