samoobnovenie komponenty

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

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
+
0
-

$this->invalidateControl('menuDragDrop') je v pořádku, problém bude jinde. Můžeš popsat podrobněji situaci?

bazo
Člen | 620
+
0
-

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
+
0
-

A máš jistotu, že se ten handle skutečně volá? Prostě jestli není chyba někde mimo invalidateControl a snippet.

bazo
Člen | 620
+
0
-

ten handle sa vykona

David Grudl
Nette Core | 8218
+
0
-

Já je to verze Nette? A používáš $oldLayoutMode?

bazo
Člen | 620
+
0
-

0.9.2 pre php5.2, oldLayoutMode mam na false

David Grudl
Nette Core | 8218
+
0
-

Můžeš mi zkusit nějaký co nejvíce ořezaný příklad poslat emailem?

bazo
Člen | 620
+
0
-

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
+
0
-

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
+
0
-

ok, pridal som tam presenter aj sablonu ako to pouzivam ja, staci len vlozit napr do skeletonu
http://bazo.sk/…droplite.zip

bazo
Člen | 620
+
0
-

tak co, ziadny napad?

Matúš Matula
Člen | 257
+
0
-

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.