【问题标题】:Why grid renders into the other grid row?为什么网格渲染到另一个网格行?
【发布时间】:2012-02-25 19:42:30
【问题描述】:

为什么当我点击 X 清除快速搜索时,第二个网格会呈现到第一个网格行? 我究竟做错了什么? 这是我的页面:

class page_alumnos_equipo extends Page {
function init(){
    parent::init();



    $this->api->stickyGET('id');

    $mAlumno=$this->add('Model_Alumno')->loadData($_GET['id']);       
    $h=$this->add('H1')->set($mAlumno->get('name').' ( '.$mAlumno->get('grado').$mAlumno->get('nivel'). ' )');

    $this->add('H2')->set('Equipos actuales');
    $ins=$this->add('MVCGrid');
    $ins->setModel('Equipo',array('clase'));
    $ins->dq->where('alumno_id',$_GET['id']);

    $this->add('H2')->set('Agregar a Nuevo Equipo');
    $g=$this->add('MVCGrid');
    $g->setModel('Clase');
    $g->getColumn('name')->makeSortable();
    $g->dq->order('dia_id');
    $g->dq->order('hora');
    $g->dq->order('grado_id');
    $qs=$g->addQuickSearch(array('name','grado','dia','hora','asesor'));      

    if($qs->recall('q')==''){
      $qs->memorize('q',$mAlumno->get('grado'));
    }

    $f=$this->add('Form');
    $f->addField('line','selected');
    $g->addSelectable($f->getElement('selected'));

    $f->addSubmit();        
    if ($f->isSubmitted()){
        $selected=json_decode($f->get('selected'));

        foreach($selected as $sel){

            $this->api->db->dsql()->table('equipo')
                ->set('alumno_id',$_GET['id'])
                ->set('clase_id',$sel)
                ->do_insert();
        }
        $this->js()
                ->univ()
                ->closeDialog()
                ->successMessage('Se asignó equipo a: '.$mAlumno->get('name'))
                ->execute();
    }
 }
}

提前致谢

【问题讨论】:

  • 只是一个建议,但添加第二个参数到 add('MVCGrid',xxx) 并带有一些唯一标识符。没有空格,[a-z]

标签: php user-interface frameworks atk4


【解决方案1】:

虽然我没有发现您的页面有任何问题,但可能是对象/区域呈现问题。

对我来说,我尽量不调用页面视图的univ 或jquery javascript,而只调用特定对象的视图。所以而不是这个:

 $this->js()
    ->univ()
    ->closeDialog()
    ->successMessage('Se asignó equipo a: '.$mAlumno->get('name'))
    ->execute();

通过将 javascript 调用更改为:

 $f->js()
    ->univ()
    ->closeDialog()
    ->successMessage('Se asignó equipo a: '.$mAlumno->get('name'))
    ->execute();

我希望这可以解决您的对象渲染问题。

【讨论】:

    猜你喜欢
    • 2019-11-12
    • 1970-01-01
    • 1970-01-01
    • 2022-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多