我的页面中有一个网格,并且有一个这样的详细信息按钮:
$grid->addColumn('button','tid','Details');
我希望在单击详细信息按钮后,网格会隐藏并通过 AJAX 加载另一个视图...
可能吗?
此致
我的页面中有一个网格,并且有一个这样的详细信息按钮:
$grid->addColumn('button','tid','Details');
我希望在单击详细信息按钮后,网格会隐藏并通过 AJAX 加载另一个视图...
可能吗?
此致
如您所知,ATK Grid 中的按钮默认执行 ajaxec() 请求。他们向 PHP 端发送额外的请求,然后通过 jQuery_Chain->execute 发送必要的 javascript 指令。
您还可以通过此处解释的技术立即捕获点击:http: //agiletoolkit.org/codepad/gui/grid
您可能还需要知道 js() 可以采用 jQuery 链的第二个参数数组。
更多关于链:http ://agiletoolkit.org/learn/understand/chains
您可以通过两种方式做到这一点。第一种 - 需要使用选择器并手动加载数据的经典方法:
$b->js('click')->atk4_loader('loadURL',
array($this->api->url(),'cut_object'=>$b->name,'arg'=>$field->js()->val()));
另一种方法是简单地添加一个空白视图,然后有条件地在其中加载内容:
$v=$this->add('View');
if($_GET['details']) {
$v->add('View_ModelDetails')->setModel('User')->load($_GET['details']);
}
然后使用
$v->js()->reload(array(
'details'=>$this->js()
->_selectorThis() // targets clicked button
->closest('tr')
->data('id') // passes ID of the argument
))
此处进一步详细说明:http: //agiletoolkit.org/codepad/interaction/reloading
步骤很少,您需要将它们放在一起。这是另一个您可能能够适应的较旧示例: