$component->link(‚this‘) a Paginator $page na 1

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

ahoj,

mam komponentu ktora mi vykresluje listing a v nej formular, ktorym je mozne nastavit podla coho zoradovat.
moj problem je, ze potrebujem formularu nastavit action na this, ale aby bola stranka paginatoru 1 pretoze po zmene typu zoradovania by sa malo strankovanie logicky vyresetovat a ist od zaciatku

<?php
protected function createComponentSort()
	{
		$form = new Forms\Form();
		$form->setMethod('get');
		$form->setAction($this->link('this'));
		$form->setTranslator($this->translator);

		$form->addSelect('sort', 'Order by', $this->sortOptions)
			->setDefaultValue($this->sort);

		$form->addSubmit('submit', 'Sort');

		return $form;
	}
?>

problem je, ze ->link(‚this‘) vklada i aktualnu hodnotu paginatora a tej sa neviem zbavit (pretoze paginator je ako dalsia komponenta) – napada niekoho, ako na to?

Zax
Člen | 370
+
+1
-

Za předpokladu že komponentu paginator máš v aktuální komponentě a v tom paginatoru máš persistent parametr „page“ by to mělo jít normálně takto:

$this->link('this', array('paginator-page' => 1));

Pokud je paginator v nadřazené komponentě, tak musíš tvořit link z parentu:

$this->getParent()->link('this', array('paginator-page' => 1));

Nebo můžeš i přes presenter

$this->getPresenter()->link('this', array('path-to-paginator-page' => 1));

(kde path-to-paginator je cesta k paginatoru v komponent modelu)

Editoval Zax (12. 8. 2014 0:02)

japlavaren
Člen | 404
+
0
-

dakujem, prve riesenie pomohlo, dlho do toho kukam a potom uz mi to nemysli