Dynamické snippety – přidávání dalších řádku do tabulky

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

Dobrý den,

potřeboval bych do tabulky vypsat větší množství dat, a tak to chci udělat tak, že vypíšu např. prvních 10 řádků, a po kliknutí na tlačítko „Další“ se mi přes ajax načtou další řádky.

V renderDefault() mám tedy:

public function renderDefault() {
	if(!$this->isAjax()) {
		$this->template->restaurants = $this->getFirstRestaurants();
	}
}

Pod tabulkou v šabloně mám:

<a n:href="load!" class="ajax">Načíst další..</a>

S tím, že handleLoad vypadá nějak takto:

public function handleLoad() {
   	$data = $this->getFirstRestaurants();
   	foreach($this->restaurants->getNext() as $item) {
   		$data[] = $item;
   	}
   	$this->template->restaurants = $data;
   	$this->redrawControl("list");
}

Samotná tabulka v šabloně pak vypadá nějak takhle:

{snippet list}
<table>
	<thead>...</thead>
	<tbody>
		{foreach $restaurants as $restaurant}
		<tr n:snippet="item_$restaurant->id">
			...
		</tr>
		{/foreach}
</tbody>

Ovšem z nějakého důvodu se mi nové řádky nenačtou. Nemáte někdo tušení, čím to může být?

Pozn: pokud odstraním ty dynamické snippety a nechám to celé obalené jen ve snippetu list, tak se mi to v pohodě načte. Ovšem nechci, aby se mi pořád znovu překreslovala celá tabulka, když se mají načíst jen nové řádky.

David Matějka
Moderator | 6445
+
0
-
BuGeR
Člen | 45
+
0
-

Perfektní! Děkuji.