Tabulka s formuláři na místech kde neexistuje záznam

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

Ahoj.
Potřeboval bych vyřešit jednu věc a nějak nevím jak na to jestli si napsat na to nějakou komponentu, nebo jak to udělat co nejjednodušeji. Potřebuji vypsat tabulku o x řádcích a takovým způsobem, že vypíšu počet řádků na kterých bude formulářový input a odesílací tlačítko. Po odeslání bych potřeboval zkontrolovat jestli daný řádek již záznam má a nebo ne a tabulku vykreslovat tak, že pokud záznam existuje tak se vypíše hodnota záznamu z db a pokud ne vykreslí se formulář na zadání záznamu. Neřešil někdy někdo podobný problém?
Díky za jakoukoliv konstruktivní odpověď.

CZechBoY
Člen | 3608
+
0
-

Máš nějakej kod teďka (co třeba nefunguje jak by měl)?
Já bych si asi udělal komponentu pro každý řádek s tím, že pokud by existoval záznam tak bych vypsal ten formulář.

Ukáka kodu

class Table extends Nette\Application\UI\Control
{
    protected function createComponentRow()
	{
		return new Nette\Application\UI\Multiplier(function ($id) {
			if (isset($this->rowData[$id])) {
				$rowData = $this->rowData[$id];
			} else {
				$rowData = null;
			}

			return $this->rowFactory->create($rowData);
		});
	}
}
class Row extends Nette\Application\UI\Control
{
	public function __construct ($rowData = null, IFormRowFactory $formFactory)
	{
		$this->rowData = $rowData;
		$this->formFactory = $formFactory;
	}

	public function render()
	{
		$this->template->rowData = $rowData;
		$this->template->setFile($cestaSablony);
		$this->template->render();
	}

	protected function createComponentForm()
	{
		return $this->formFactory->create();
	}
}

interface IRowFactory
{
	/** @return Row */
	function create($rowData = null);
}
<td>
{if $rowData === null}
    {control form}
{else}
    {$rowData->sloupec}
{/if}
</td>