datagrid pre notorm a nette2

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
David Ďurika
Člen | 328
+
0
-

Zdravim,

existuje nejaky datagrit pre notrom a nette2 ?

dakujem

dcepelik
Člen | 36
+
0
-

Ahoj,

něco takového právě vyvíjím pro jeden svůj projekt. Hodil jsem ti to na GitHub: https://github.com/dcepelik/Grid.

Příklad použití:

<?php

public function createComponentGrid()
{
	$grid = new GridControl;
	$grid->addLink('delete %id', 'Delete'); // "akce" (link) na úrovni řádku

	// hromadné akce
	$grid->addAction('delete', 'Delete', function($ids, $grid) {
		// obsluha akce (v poli $ids dostaneš ID zvolených záznamů)
	});

	// definice sloupců, první argument je název sloupce z tabulky
	$grid->addColumn('title', 'Title')->setLink('edit %id');
	$grid->addColumn('parent', 'Parent Category')->setEmptyValue('Root category');
	$grid->addBool('visible', 'Visible');

	// výchozí řazení, nastavení DataSource
	$grid->defaultOrder = array('parent', 'title');
	$grid->dataSource = $this->categoryTable->fetchAll()->toDataSource();

	return $grid;
}

?>

Na dokumentaci bohužel není čas. Umí to vícenásobné řazení, filtry, linky na úrovni řádků a hromadné akce. Běží to na dibi 2.

Má to několik nectností; za prvé to nevyužívá renderer, ale šablonu (což je v mnoha ohledech paradoxně výhoda, záleží na tvých potřebách) a pokládá to zbytečně jeden dotaz navíc pro zjištění počtu položek pro Paginator. A pak spoustu dalších, o kterých nevím, nebo na které si teď nevzpomenu.

Ještě jednou: není to hotové. Ale třeba ti to pomůže.

David Ďurika
Člen | 328
+
0
-

dcepelik napsal(a):
Ale třeba ti to pomůže.

cav, asi nie, lebo ja to potrebujem na NotOrm…

dcepelik
Člen | 36
+
0
-

Ahoj,

to jsem přehlédl.

NotORM jsem také používal, ale po čase jsem zjistil, že dibi mi vyhovuje více. Na menších projektech byl NotORM vysvobození, u větších věcí, kde potřebuji mít nad dotazem úplnou kontrolu, mi nesedl. (Němý šepot zkus dibi, zkus dibi, …)

Pokud bys nenašel nic vhodnějšího, neměl by být problém Grid upravit pro NotORM. Místo DibiDataSource bys použil NotORM_Result, popř. Nette\Database\Table\Selection a během pěti minut bys fungoval. Ready-made řešení to ale není.

ricco24
Člen | 141
+
0
-

Môžeš vyskúšať toto – Datagrid pre NotOrm