Компонент 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");

Если это не поможет вам. Пожалуйста, предоставьте больше кода, особенно шаблон латте.

Другие вопросы по тегам