1

我有一个 Grid 对象并添加了一个[ (+) New Client ]按钮,我想打开一个弹出表单来创建带有几个字段的新客户端。

我已经查看了网站中的代码示例,但还没有找到如何去做(抱歉,如果我遗漏了一些东西)。

这是当前页面代码:

function page_clients_listing($p){

    $g = $p->add('Grid');
    $g->addColumn('text','first_name');
    $g->addColumn('text','last_name');
    $g->addColumn('inline','telephone');
    $g->addColumn('expander','comments');
    $g->setSource('client');

    $g->addButton('With Icon')->set('Add New Client')->setIcon('Plus');
}

提前致谢!

4

1 回答 1

0

您可以创建弹出窗口或对话框。Dialog 基于 jQuery UI 对话框实现。弹出窗口可能会被阻止并且更难控制。

这实际上适用于任何对象(您可以应用于视图、按钮、图像、图标等),但我将使用按钮)。

$b=$g->addButton('Add New Client')->setIcon('Plus');

$b->js('click')->univ()->frameURL($title,$url);
// OR
$b->js('click')->univ()->dialogURL($title,$url);

$url 很可能由 api->getDestinationURL() 返回。将加载另一个页面并评估该页面上的脚本。假设您在其他页面上,现在需要关闭窗口。

$result = $this->addButton('Close')->js('click')->univ()->closeDialog();

closeDialog() 返回一个指向最初打开框架的视图的 jQuery 链对象。结果,如果您执行 $result->hide(); 然后在对话框关闭后,原来的按钮('添加新客户端')也将被隐藏。

下面的示例展示了您可以对帧、重新加载和自定义事件处理程序执行的一些附加操作:

http://agiletoolkit.org/example/refresh1

于 2011-04-18T22:38:08.113 回答