samoobnovenie komponenty
- bazo
- Člen | 620
Zdravim,
mam vlastnu komponentu a chcel by som aby sa sama invalidovala a nasledne sa
automaticky prekreslila.
v sablone komponenty som jej html uzavrel do {snippet menuDragDrop}.
vytvori sa
<div id="snippet-menuDragDrop-menuDragDrop">
v handleri nejakej akcie by sa to teda malo invalidovat ale neviem s akymi
parametrami.
Skusal som
<?php
$this->invalidateControl('menuDragDrop') aj 'menuDragDrop-menuDragDrop'
?>
napriklad datagrid tam vola invalidate bez parametru.
diky moc za kazdu radu
- David Grudl
- Nette Core | 8218
$this->invalidateControl('menuDragDrop')
je v pořádku,
problém bude jinde. Můžeš popsat podrobněji situaci?
- bazo
- Člen | 620
takto to funduje ak to zavolam v presenteri. ale ked to presuniem to handlera komponenty nic sa nestane.
<?php
class MenuDragDrop extends Control
{
public function handleItemDelete($item)
{
foreach($this->onItemDelete as $func)
{
call_user_func($func, $item);
}
$this->invalidateControl('menuDragDrop');//nic sa nestane
}
}
?>
v samotnej sablone komponenty je uz {snippet menuDragDrop}
- David Grudl
- Nette Core | 8218
A máš jistotu, že se ten handle skutečně volá? Prostě jestli není chyba někde mimo invalidateControl a snippet.
- bazo
- Člen | 620
rad by som, ale tvoj email nepoznam
ale mozes si ten priklad stiahnut tu http://bazo.sk/…droplite.zip
aj ostatni, ktorych by to zaujimalo
- David Grudl
- Nette Core | 8218
Určitě oddělej to
public function __construct()
{
parent::__construct();
}
tím odřízneš komponentu od zpracování stavů. Přihoď mi tam ještě nějaký presenter, prostě aby to šlo spustit.
- bazo
- Člen | 620
ok, pridal som tam presenter aj sablonu ako to pouzivam ja, staci len vlozit
napr do skeletonu
http://bazo.sk/…droplite.zip
- Matúš Matula
- Člen | 257
tak som sa na to pozrel a ide mi to..tusim, ze ti tam chybal zavinac
v sablone default.phtml
pred {widget}
,
takze takto
@{block #content}
@{control menuDragDropLite}
taktiez v @layout.phtml
volaj @{include #content}
(# namiesto $)
toto by ti malo stacit na rozbehanie.