网格与按钮到详细信息页面

时间:2012-12-31 18:30:49

标签: php atk4 agiletoolkit

我有一个显示联系人姓名的网格。我希望能够有一个链接到另一个页面(详细信息)的详细信息按钮,它将显示联系人详细信息,例如姓名,地址,备注等......

我知道如何将按钮添加到网格中,但我希望看到显示详细信息页面的最佳方法。我见过一个只读数据的表单,我也看过制作一个自定义模板。我确信两者都有用例。什么是最好的?

最后,我如何将id传递给链接页面?

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

我现在不会给出全功能的答案(现在不在我的开发笔记本电脑上),但简而言之:

  • 您可以使用“扩展器”类型的网格列。 $网格状> addColumn( '膨胀',...);

  • 您可以使用“按钮”类型的网格列$ b = $ grid-> addColumn('button',...)并在点击按钮时添加一些代码,如果($ b-> isClicked()){...}。

在这两种情况下,您将收到带有网格行记录ID的$ _GET [xxx]参数,其中xxx是addColumn()方法中设置的扩展器/按钮列的名称。

您可以使用几周前制作的新附加罗马书。它是关于如何打开“内页” - 在父页面类中“注入”的新弹出页面。


修改 如果您只想重定向到设置了id = xxx的详细信息页面,那么您可以这样做:

// Add button column to grid
$grid->addColumn('button','details','Details');

// Action to do when details button is clicked
// This must return JavaScript (use execute() method to do that immediately)
if(isset($_GET['details'])) {
    // redirect to page foo/bar&id=xxx
    $this->js()->univ()
        ->location($this->api->url('foo/bar',array('id'=>$_GET['details'])))
        ->execute();
}

如果你需要一些JS回调功能,你也可以使用redirect(url,callback)或redirectURL(url,callback)而不是location(url)。