0

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

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

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

任何帮助,将不胜感激。

4

1 回答 1

1

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

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

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

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

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


编辑: 如果您想简单地重定向到设置了 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)。

于 2013-01-01T16:39:00.973 回答