为什么网格渲染到另一个网格行?

时间:2012-02-25 19:42:30

标签: php user-interface frameworks atk4

为什么第二个网格渲染到第一个网格行,一旦我点击X以清除quicksearch? 我究竟做错了什么? 这是我的页面:

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();
    }
 }
}

提前致谢

1 个答案:

答案 0 :(得分:0)

虽然我没有看到您的页面有任何问题,但它可能是对象/区域渲染问题。

对我来说,尽可能地,我尽量不要调用页面视图的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();

我希望这能解决你的对象渲染问题。