/** * @param \Nette\Forms\IControl $control * @param $name * @return ManyToOne */ public function setDependOn(\Nette\Forms\IControl $control, $name = NULL) { $_this = $this; $this->dependOn = array($control, $name ?: $control->name); $this->criteria = array($name => -1); $this->form->addSubmit($this->name . '_reload', 'reload')->setValidationScope(FALSE); $control->form->onBeforeRender[] = function ($form) use($_this, $control) { $control->getControlPrototype()->onChange = "\$('#frm{$form->name}-{$_this->name}_reload').click();"; }; $f = function ($form) use($_this, $control, $name) { $_this->setCriteria(array($name => $control->value)); }; $control->form->onAttached[] = $f; $control->form->onLoad[] = $f; return $this; }