1

我的页面中有一个网格,并且有一个这样的详细信息按钮:

$grid->addColumn('button','tid','Details');

我希望在单击详细信息按钮后,网格会隐藏并通过 AJAX 加载另一个视图...

可能吗?

此致

4

1 回答 1

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

步骤很少,您需要将它们放在一起。这是另一个您可能能够适应的较旧示例:

http://demo39.agiletoolkit.org/demo.html?t=22

于 2013-10-01T16:39:20.123 回答