我制作像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之后,我需要将字符串从表单传递到组件数据网格的呈现方法。
当然,我尝试使用redrawControl进行会话。但是什么也没发生。有什么可能的解决方案吗?比如session,执着的助手,神奇的彩虹独角兽,或者更好的带西红柿披萨的毛绒绒的小猫。
谢谢你的点子。
发布于 2016-03-10 17:48:48
我不太确定你在找什么,但是..
它可以是动态片段。
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");如果这对你没有帮助的话。请提供更多的代码,特别是拿铁模板。
https://stackoverflow.com/questions/35904564
复制相似问题