Implementace datagridu od Romana Sklenare
- Klainer
- Člen | 42
Dobrý den,
jsem začátečník v NETTE a chtěl bych využít datagrid od Romana
Sklenáře, našel jsem tu verzi upravenou pro nové nette, ale vubec netuším
jak ji rozchodit. Proto se ptám jak postupovat ? Stačí heslovitě, at se mám
od něčeho odpíchnout.
Upravený datagrid: https://github.com/…DataGrid-5.3
Děkuji za rady!
Edit1:
Tak jsem nějak začal, stáhnul jsem knihovnu a rozbalil celou do složky
libs.
V Presenteru jsem jsi vytvořil tuto metodu:
protected function createComponentGrid($name)
{
$grid = new DataGrid;
$model = new Model;
$ds = \dibi::dataSource('select * from AKTUALNI_STAV_NADRZE');
// Create a data source
$dataSource = new \DataGrid\DataSources\Dibi\DataSource($ds);
// Configure data grid
$grid = new DataGrid;
$grid->setDataSource($dataSource);
$this->addComponent($grid, $name);
}
A pak volám v šabloně: @{control grid}
Nevím jestli to dělám dobře,
každopádně hned mám jednu chybku:
Fatal Error
Class 'Nette\Application\UI\Control' not found
File: ...\libs\DataGrid\DataGrid.php Line: 37
27: *
28: * $presenter->addComponent($grid, 'componentName');
29: * </code>
30: *
31: * @author Roman Sklenář
32: * @copyright Copyright (c) 2009 Roman Sklenář (http://romansklenar.cz)
33: * @license New BSD License
34: * @example https://componette.org/search/?q=datagrid
35: * @package Nette\Extras\DataGrid
36: */
37: class DataGrid extends Nette\Application\UI\Control {
38:
39: /** @persistent int */
40: public $page = 1;
Používám prefixovou verzi Nette (Nette Framework 2.0.3 pro starší PHP 5.2 s prefixy) v defaultním nastavení s dibi.
EDIT2
Asi jsem pokročil:
class DataGrid extends Nette\Application\UI\Control
přepsat na: NControl
ale našla se tu další věc, kterou nevím jak přepsat na verzi s prefixi:
$ds = \dibi::dataSource('select * from AKTUALNI_STAV_NADRZE');
73: // Create a data source
74: $dataSource = new \DataGrid\DataSources\Dibi\DataSource($ds);
neví někdo jak na to ?
Editoval Klainer (28. 6. 2012 22:44)
- llsm
- Člen | 121
Zdravim, absolutne netusim, co to s tim aktualne delas a prijde mi, ze ty
take ne… V promene $ds uz mas ulozeny dibi datasource, tak proc ho tam pak
vytvaris nejak prapodivne znova?
Mam pocit, ze michas vic produktu dohromady. Tj ze sis stahl nejaky datagrid,
ale zpusob jakym ho v tovarnicce vytvaris nalezi k jinemu produktu… Zkusim
to udelat tak, jak si myslim, ze by pro ten tvuj melo byt spravne, ale sam si
nejsem jisty…
<?php
protected function createComponentGrid()
{
$grid = new DataGrid;
$ds = dibi::dataSource('select * from AKTUALNI_STAV_NADRZE');
$grid->bindDataTable($ds);
return $grid;
}
?>
Jinak ti doporucuji si nejdriv precist neco vic o zakladech programovani a objektovem programovani, protoze z toho kodu, ve kterem dvakrat vytvaris instanci Datagridu a pak instanci modelu, kterou vubec nepouzivas, mi prijde, ze moc nevis co delas…
Editoval llsm (29. 6. 2012 12:10)