我的页面中有一个网格,并且有一个详细信息按钮:
$grid->addColumn('button','tid','Details');
我希望在单击详细信息按钮后,网格将被隐藏,另一个视图将通过AJAX ...
加载有可能吗?
祝你好运
答案 0 :(得分:0)
如您所知,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
步骤很少,你需要将它们组合在一起。以下是您可能适应的另一个较旧的示例: