Více stejných „komponent“ na stránce

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

Mám seznam věcí, ke každé věci vypisuju pomocí komponenty nějaké údaje. Problém je v tom, že komponenta jednoho druhu, může být na stránce jen jedna (u ostatníc věcí se zobrazí údaje z první komponenty). Jak tento problém vyřešit? Pomocí čeho to udělat? Díky za pomoc.

Patrik Votoček
Člen | 2221
+
0
-

„Plnit“ komponentu datama až v render fázi.

dominikdavid
Člen | 3
+
0
-

vrtak-cz napsal(a):

„Plnit“ komponentu datama až v render fázi.

jenže ja potřebuju ke každe věci tahat data z databaze. a davat je nějakým způsobem dohromady a ještě u nich zobrazit formulař pro přidání dalších informací.

Tohle řešení přes komponentu jsem udělal. Když jsem informace i s formulářem zobrazoval u jedne věci na stránce. Pak jsem to rozšířil i na seznam věcí.

Patrik Votoček
Člen | 2221
+
0
-

Zkus pohledat tady na fóru

Namátkou: https://forum.nette.org/…e-komponenty

despiq
Člen | 320
+
0
-

takze nejdriv to zkus vymyslet tak abys vic stejnych komponent na strance nemel

kdyz budes opravdu presvedcen ze to jinak nejde tak se jukni
https://forum.nette.org/…tu-do-kosiku
mel bys tam najit co potrebujes

Honza Marek
Člen | 1664
+
0
-

Já něco takového řešil přes poděděný ComponentContainer, který jsem připojil k presenteru a k sobě připojoval konkrétní komponenty s názvem podle id.

Příklad: objednávkový formulář pro různé výrobky.

<?php
/**
 * Shop item component container
 */
class ShopItemComponentContainer extends Nette\ComponentContainer {

	protected function createComponent($name) {
		$form = new Nette\Application\AppForm($this, $name);
		$form->addHidden("id")->setDefaultValue($name);
		$form->addText("amount", "Množství");
		$form->addSubmit("buy", "Koupit");
	}

	public function render($id) {
		$this->getComponent($id)->render();
	}
}
?>
dominikdavid
Člen | 3
+
0
-

Jo přesně, k tomi jsem se taky dostal, problem je v tom, že šabloně předáme „pole“ objektů, které se v šabloně prochází. Jde ze šeablony předat parametr do prezenteru, kde se komponenta vytváří
{widget xxxControl}

Honza Marek napsal(a):

Já něco takového řešil přes poděděný ComponentContainer, který jsem připojil k presenteru a k sobě připojoval konkrétní komponenty s názvem podle id.

Příklad: objednávkový formulář pro různé výrobky.

Editoval dominikdavid (11. 6. 2010 23:28)