invalidace všech komponent

- Paradiso
 - Člen | 101
 
Ahoj, nevím jak to přesně popsat.
Mám komponentu
class DataGrid extends Control {...}
v presenteru si pak vytvořím:
        public function createComponentOrders(){
            return new \MyComponents\DataGrid($this->context->database);
        }
        public function createComponentStornoOrders(){
            return new \MyComponents\DataGrid($this->context->database);
        }
první datagrid zobrazí objednávky bez stornovaných, druhý zobrazý pouze stornované
a teď když změním pomocí selectboxu (ajaxově) stav na storno, tak se mi podaří invalidovat order, ale už nevím, jak invalidovat i stornoOrders
Editoval Paradiso (8. 5. 2013 16:58)

- thunderbuff
 - Člen | 164
 
$this->presenter a $this->getPresenter() vrací to samé, ale jde to použít až v momentě, kdy je komponenta připojená do stromu komponent. Tedy ne v konstruktoru, ale až v nějaké metodě volané během životního cyklu komponenty. Pokud se ti stornoOrders nedaří invalidovat, zkus se podívat, co ti vrátí response z ajaxového requestu.
//EDIT: názvy snippetů jsou case sensitive, takže $this->presenter->invalidateControl(‚StornoOrders‘) není to samé, co $this->presenter->invalidateControl(‚stornoOrders‘), pozor na to
Editoval thunderbuff (8. 5. 2013 22:06)

- Paradiso
 - Člen | 101
 
Nevím, jestli jsem to dobře popsal, tak to zkusím raději ještě trošku přiblížit
v šabloně DataGrid mám:
{snippet table}
tabulka
{/snippet}
komponenta invaliduje snippet takto:
class DataGrid extends Control {
....
    public function handleEditableSelect($id, $val){
	....
        $this->invalidateControl('table');
	....
    }
...
}
a v presenteru mám
public function createComponentOrders(){
    return new \MyComponents\DataGrid($this->context->database);
}
public function createComponentStornoOrders(){
    return new \MyComponents\DataGrid($this->context->database);
}
v šabloně v presenteru pak jen {control orders}{control stronoOrders}
Když udělám akci nad Orders, tak se zavolá
..?do=orders-editableSelect&…
takže se zavolá správně pouze handle pro Orders
pokud nastavím $this->getPresenter()->invalidateControl(‚table‘); tak se nestane nic ani s aktuální komponentou, pokud $this->invalidateControl(‚table‘); tak se invaliduje, alespoň ta aktuální