1

我正在制作像 DataGrid 这样的 nette 组件。我有一个基本组件 BaseGrid。在这个组件中,我调用另一个组件过滤器

    public function createComponentFilter()
        {
            return new Multiplier(function ($columnName) {
                return new \App\Filter\FilterControl($columnName, $this->session, $this->database);
            });
        }

其中 $columnName 是列的名称(多么意外)

组件过滤器的构造函数

    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 进行会话。但什么也没发生。有没有可能的解决方案?比如会话、持久的参数、神奇的彩虹独角兽,或者更好的毛茸茸的小猫,后面有西红柿披萨。

非常感谢您的想法。

4

1 回答 1

0

我不太确定你在找什么,但是..

它可能是动态片段

https://doc.nette.org/en/2.3/ajax#toc-dynamic-snippets

{snippet items}
    {foreach $items as $item}
        {snippet "items-" . $item->id}
            {$item->str}
        {/snippet}
    {/foreach}
{/snippet}    

你只能重绘一个项目,eq

$this->redrawControl("item-$id");

如果这对您没有帮助。请提供更多代码,尤其是拿铁模板。

于 2016-03-10T09:48:48.293 回答