如何创建“新xxx”弹出窗口?

时间:2011-04-18 22:27:07

标签: popup field atk4

我有一个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');
}

提前致谢!

1 个答案:

答案 0 :(得分: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