Как создать всплывающее окно "New xxx"? - PullRequest
1 голос
/ 19 апреля 2011

У меня есть объект 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 голосов
/ 19 апреля 2011

Вы можете создать всплывающее окно или диалог. Диалог основан на реализации диалогового окна 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

...