Grid
De CidesaWiki
Code provided by Miki && Luelher.
Para comenzar deben revisar:
1.- Si tienen en su /siga/lib la carpeta /helper y dentro de esa el archivo GridHelper.php. 2.- Si en /siga/web/js se encuentra el archivo tools.js 3.- Si en /siga/web/images/ se encuentra el archivo delete.png
Luego creamos el arreglo de objetos resultante de nuestra consulta sql, esto estaría en el actions.class de nuestra forma:
$c = new Criteria(); $c->add(ForpryorgpubPeer::CODPRO,$this->fordefpry->getCodpro()); $per = ForpryorgpubPeer::doSelect($c);
Entonces le pasamos al edit_form nuestro objeto "$this->per" a traves del edit_success
Luego en el editSuccess de la forma en la que estamos trabajando, agregar el helper "Grid":
<?php use_helper('Object', 'Validation', 'ObjectAdmin', 'I18N', 'Date', 'tabs', 'Javascript', 'PopUp', 'Grid') ?>
Hacemos el llamado del helper donde queramos colocarlo. En este ejemplo seria en _edit_form.php luego de los objetos principales y antes de los botones de guardar los datos.
<form name="form1" id="form1"> <? echo grid_tag($obj); ?> </form>
Pasar al _edit_form.php la variable $obj a través del editSuccess de la siguiente forma:
| -------------- | | <?php include_partial('fordefproyecto/edit_form', array('fordefpry' => $fordefpry, 'labels' => $labels, 'obj' => $obj)) ?>
La configuración al Grid, se tiene que agregar en el action.class.php:
public function configGrid() { $c = new Criteria(); $c->add(ForpryorgpubPeer::CODPRO,$this->fordefpry->getCodpro()); $per = ForpryorgpubPeer::doSelect($c); $opciones = new OpcionesGrid(); $opciones->setEliminar(true); $opciones->setTabla('forpryorgpub'); $opciones->setAnchoGrid(500); $opciones->setTitulo(''); $opciones->setHTMLTotalFilas(' '); $col1 = new Columna('Código'); $col1->setTipo(Columna::TEXTO); $col1->setEsGrabable(true); $col1->setAlineacionObjeto(Columna::CENTRO); $col1->setAlineacionContenido(Columna::CENTRO); $col1->setNombreCampo('codorg'); $col1->setCatalogo('fordeforgpub','sf_admin_edit_form',array(2)); $col1->setAjax('fordefproyecto',1,2); $col2 = new Columna('Descripción'); $col2->setTipo(Columna::TEXTO); $col2->setAlineacionObjeto(Columna::IZQUIERDA); $col2->setAlineacionContenido(Columna::IZQUIERDA); $col2->setNombreCampo('nomorg'); $col2->setHTML('type="text" size="25" disabled=true'); $opciones->addColumna($col1); $opciones->addColumna($col2); $this->obj = $opciones->getConfig($per); }
Leyenda: (*) Sin tomar en cuenta la columna "Eliminar", ésta se crea automaticamente y con unos valores estaticos
Nota: para agregar alguna funcion js adicional al grid, esta debera ser colocada en el edit_form en el que estas trabajando y debe ser llamada a traves del arreglo $js que le pasamos al grid_tag.
Si desea obtener mas información sobre los objetos de configuración para el grid puede ir al siguiente enlace Objetos Configuración Grid