Agile Toolkit - Grid не перезагружается - что мне не хватает?
У меня была перезагрузка сетки, работающая после отправки формы во всплывающем окне, но теперь я изменил все вокруг и по какой-то причине он перестал работать и не могу понять, почему...
РЕДАКТИРОВАТЬ: см. Комментарий ниже...
По сути, страница "детали" раньше была не подстраницей этой страницы, а отдельным файлом.php, я предпочитаю подход подстраниц, но я, должно быть, где-то облажался при переходе... Я отредактировал некоторые вещи, которые только сделает это труднее читать.
Кто-нибудь видит, что мне не хватает или куда я иду не так?
class page_liststuff extends Page {
function initMainPage(){
// parent::init();
$grid = $this->add('Grid');
$this->js('reload_grid',$grid->js()->reload());
$grid->addColumn('button','edit');
$grid->addButton('Refresh')->js('click', $grid->js()->reload());
if($_GET['edit']){
$this->js()->univ()->frameURL('Edit',$this->api->url('details'))->execute();
}
}
function defaultTemplate(){
return array('page/detail');
}
function page_details(){
$m = $this->setModel('Stuff');
$f1 = $stap1->add('Form');
$f1->addSubmit('Save');
if ($f1->isSubmitted()){
try {
$f1->update();
$f1->js()->univ()
->successMessage('Success!')
//->closeDialog()
->getjQuery()->trigger('reload_grid')
->execute();
} catch(Exeception $e) {
$f1->js()->univ()->alert('Fail!')->execute();
}
}
}
}
1 ответ
Вы можете использовать любые параметры виджета JQuery UI Dialog в своих интересах, например:
$options = array(
'closeOnEscape' => false, // http://api.jqueryui.com/dialog/#option-closeOnEscape
'dialogClass' => 'no-close',
);
$this->js()->univ()
->frameURL('Edit', $this->api->url('./details'), $options, $callback)
->execute();
Просто чтобы скрыть кнопку закрытия, для этого гораздо проще использовать CSS, как описано здесь: http://api.jqueryui.com/dialog/ в параграфе "Скрытие кнопки закрытия".
В некоторых случаях вы можете скрыть кнопку закрытия, например, если у вас есть кнопка закрытия на панели кнопок. Лучший способ сделать это с помощью CSS. В качестве примера вы можете определить простое правило, например:
.no-close .ui-dialog-titlebar-close {
display: none;
}
Затем вы можете просто добавить класс no-close в любой диалог, чтобы скрыть кнопку закрытия:
$( "#dialog" ).dialog({
dialogClass: "no-close",
buttons: [{
text: "OK",
click: function() {
$( this ).dialog( "close" );
}
}]
});