具有AJAX形式的Nette组件

时间:2016-03-09 23:14:32

标签: datagrid nette

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

    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的render方法。

我当然尝试使用redrawControl进行会话。但没有任何事情发生。有一些可能的解决方案吗?喜欢会话,持久的params,魔术彩虹独角兽,或者更好的小蓬松猫,背面有西红柿披萨。

非常感谢您的想法。

1 个答案:

答案 0 :(得分: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}    

你只能重绘一个项目,e.q。

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

如果这对你没有帮助。请提供更多代码,特别是拿铁模板。