Компонент Nette с формой AJAX
Я делаю компонент Nette, как DataGrid. У меня есть один базовый компонент BaseGrid. В этом компоненте я вызываю другой компонент Filter
public function createComponentFilter()
{
return new Multiplier(function ($columnName) {
return new \App\Filter\FilterControl($columnName, $this->session, $this->database);
});
}
где $ columnName - имя столбца (как неожиданно)
Конструктор компонента Filter
public function __construct($column_name, Session $session, $database)
{
$this->session = $session;
$this->sessionSection = $this->session->getSection('filtr');
$this->column_name = $column_name;
$this->database = $database;
}
В компонентном фильтре у меня есть ajax-форма, и после отправки этой ajaxform мне нужно передать строку из формы, чтобы отобразить метод компонента Datagrid.
Я пробовал сеансы, конечно, с RedrawControl. Но ничего не случилось. Есть ли какое-то возможное решение? Как сеанс, постоянные параметры, волшебные единороги радуги, или лучше маленькие пушистые кошки с томатной пиццей на спине.
Большое спасибо за идеи.
1 ответ
Я не совсем уверен, что ты ищешь, но..
Это могут быть Dynamic Snippets.
https://doc.nette.org/en/2.3/ajax
{snippet items}
{foreach $items as $item}
{snippet "items-" . $item->id}
{$item->str}
{/snippet}
{/foreach}
{/snippet}
Вы можете перерисовать только один элемент, например
$this->redrawControl("item-$id");
Если это не поможет вам. Пожалуйста, предоставьте больше кода, особенно шаблон латте.