předání dat z komponenty do presenteru a vykreslení
- pp
- Člen | 50
Ahoj,
už jsem se ptal v tématu pod datagridem ale asi to patří spíš mezi
začátečnické dotazy.
Pořád bojuju s tim, ze se mi nedaří dostat fitrovaná data z Gridu ven do
nadřazeného presenteru.
Resp. data si uložím do proměnne v Modelu ale nedokážu je vykreslit.
Já bych potřeboval po každé změně filtru překreslit snippet v šabloně
presenteru.
Pravděpodobně se ale šablona presenteru vykreslí uz dříve a
renderDefault() v té době ještě nemá data
A v eventu onAfterFilter[] překresnení
$this->renderControl(‚filtered_data‘) taky nefunguje.
Mám v tom celkem zmatek. Prosím o radu.
class DataGrid2 extends \Ublaboo\DataGrid\DataGrid {
public function getDataModel(){
return $this->dataModel;
}
}
//presenter
public function createComponentMyGrid($name){
$grid = new DataGrid2($this, $name);
$grid->setDataSource($this->myManager->getDataSource());
$grid->getDataModel()->onAfterFilter[] = function($dataSource) {
$this->myManager->setFilteredData($dataSource->getData());
// tady mam data v sablone
$this->template->filtered_data = $this->myManager->getFilteredData();
// ale data obalena do snippetu se nezobrazi
$this->renderControl('filtered_data');
};
}
public function renderDefault(){
// sem se data dostanou ale asi pozde
$this->template->filtered_data = $this->myManager->getFilteredData();
$this->renderControl('filtered_data');
}
// presenter template
{snippet grid}
{control myGrid}
{/snippet}
{snippet filtered_data}
{dump $filtered_data}
{/snippet}