1

在弹出窗口中提交表单后,我让网格重新加载工作,但现在我已经改变了一些东西,由于某种原因它停止工作并且无法弄清楚为什么......

编辑:见下面的评论......

基本上,“详细信息”页面过去不是该页面的子页面,而是一个单独的 .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();
        }
}
  }

}
4

1 回答 1

1

您可以使用任何 jQuery UI 对话框小部件选项来发挥您的优势,如下所示:

$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/#entry-longdesc在“隐藏关闭按钮”段落中。

在某些情况下,您可能想要隐藏关闭按钮,例如,如果按钮窗格中有关闭按钮。实现这一点的最佳方法是通过 CSS。例如,您可以定义一个简单的规则,例如:

.no-close .ui-dialog-titlebar-close {
  display: none;
}

然后,您可以简单地将 no-close 类添加到任何对话框中以隐藏其关闭按钮:

$( "#dialog" ).dialog({
  dialogClass: "no-close",
  buttons: [{
    text: "OK",
    click: function() {
      $( this ).dialog( "close" );
    }
  }]
});
于 2013-08-02T22:51:39.557 回答