Kdyby/Replicator skrytí tlačítka remove u první položky
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- hancs
- Člen | 57
Ahoj,
existuje nějaká proměnná, kde je uloženo o kolikátou instanci replikátoru se jedná? Potřebuji skrýt tlačítko pro mazání u první instance.
<?php
$persons = $form->addDynamic('persons', function (Container $person) use ($removeEvent) {
$person->addCheckbox('accept', $this->translator->translate('messages.person.accept'))
->setRequired($this->translator->translate('messages.reqperson.accept'));
$person->addSelect('gender', 'Oslovení')
->setItems($tittleSelect)
->setRequired($this->translator->translate('messages.reqperson.tittle'));
$person->addText('firstname', 'Křestní jméno')
->setRequired($this->translator->translate('messages.reqperson.firstname'));
$person->addText('lastname', 'Příjmení')
->setRequired($this->translator->translate('messages.reqperson.lastname'));
-----> TADY bych potřeboval něco jako if(!prvni){
$person->addSubmit('remove', $this->translator->translate('messages.person.remove'))
->setValidationScope(FALSE) # disables validation
->onClick[] = $removeEvent;
----> }
}, 1);
$persons->addSubmit('add', $this->translator->translate('messages.person.add'))
->setValidationScope(FALSE)
->onClick[] = callback($this, 'MyFormAddElementClicked');
?>
Předem díky za pomoc.
- David Matějka
- Moderator | 6445
tak nejsnazsi bude neco jako
$first = TRUE;
$persons = $form->addDynamic('persons', function (Container $person) use ($removeEvent, &$first) {
if ($first) {
}
$first = FALSE;
}
- Pavel Kravčík
- Člen | 1196
Nebo pokud to vykresluješ ručně používáme trapně:
{foreach $containter as $component}
{if !$iterator->isFirst()}
//tlačítko
{/if}
{/foreach}
- ali
- Člen | 342
Ja osobne tlacitko nechavam a resim to takto:
$item->addSubmit("remove", "-")
->setValidationScope(FALSE)
->onClick[] = function(Forms\Controls\SubmitButton $button) {
if (count($button->form->getValues()->items) > 1) {
$items = $button->parent->parent;
$items->remove($button->parent, TRUE);
}
if ($this->presenter->isAjax()) {
$this->redrawControl("filter");
}
};