我有一个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');
}
提前致谢!
答案 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();然后在关闭对话框后,原始按钮('添加新客户')也将被隐藏。
以下示例显示了您可以使用框架,重新加载和自定义事件处理程序执行的其他一些操作: