Diferencia entre revisiones de «Datagrid Simple Con Paginado»

De KumbiaPHP Framework Wiki
 
(No se muestran 8 ediciones intermedias de 2 usuarios)
Línea 1: Línea 1:
[[KumbiaPHP_Framework_Versión_1.0_Spirit#views.2Fpartials.2F |Partials]] para crear de forma simple con paginado un datagrid
+
[[KumbiaPHP_Framework_Versión_1.0_Spirit#views.2Fpartials.2F |Partials]] para crear de forma simple un datagrid con paginado
  
 
=== En el controlador ===
 
=== En el controlador ===
 
+
Para efecto del ejemplo tenemos el siguiente controller, pero puede ser cualquiera
 
<source lang="php">
 
<source lang="php">
 
  <?php
 
  <?php
Línea 18: Línea 18:
 
      'Nombre' => 'nombre',
 
      'Nombre' => 'nombre',
 
      'Telefono' => 'telefono',
 
      'Telefono' => 'telefono',
      'Direccion' => 'direccion'));
+
      'Direccion' => 'direccion');
  
 
         // Nombre del Partial de paginado que utiliza KumbiaPHP
 
         // Nombre del Partial de paginado que utiliza KumbiaPHP
Línea 56: Línea 56:
 
   
 
   
 
<div id="datagrid">
 
<div id="datagrid">
<table  border="1px" class="paginado">"
+
<table  border="1px" width="100%"  class="paginado">
 
<thead><tr>
 
<thead><tr>
 
<?php foreach( $Campos  as $titulo => $valor): ?>
 
<?php foreach( $Campos  as $titulo => $valor): ?>
<th> <?php echo $titulo >?</th>
+
<th> <?php echo $titulo ?></th>
 
<?php endforeach; ?>
 
<?php endforeach; ?>
 
</tr></thead>
 
</tr></thead>
Línea 76: Línea 76:
 
</source>
 
</source>
  
 +
== Resultado Final ==
 +
 +
[[Archivo:Datagrid_simple_con_paginado.JPG|800px|thumb|center|Resultado Final]]
 +
 +
[[Categoría:Views]]
 
[[Categoría:Partials]]
 
[[Categoría:Partials]]

Revisión actual del 13:46 7 oct 2009

Partials para crear de forma simple un datagrid con paginado

En el controlador[editar]

Para efecto del ejemplo tenemos el siguiente controller, pero puede ser cualquiera

 <?php
class ClienteController extends ApplicationController {
 
	public function page($page=1){
        // Paso el resultado de la consulta que sera mostrada en el datagrid
        $this->page = Load::model('cliente')->paginate('per_page: 20', "page: $page");
       
       /* paso un array con los campos que quiero mostrar en la datagrid
        *  El key de cada campo del ser el nombre a mostrarse en el tr de la tabla
        *  El value el campo de la tabla
        */ 
	$this->campos = array('Codigo' => 'id',
			      'Nombre' => 'nombre',
			      'Telefono' => 'telefono',
			      'Direccion' => 'direccion');

        // Nombre del Partial de paginado que utiliza KumbiaPHP
        $this->paginator = 'extended';
        /// Url que utilizara el Paginado de kumbia, por defecto utiliza la accion page 
        $this->url  = null ;

	}
 
}
//  Se maneja todo desde la vista

Mas Informacion referida a los Partial de Paginación disponibles en KumbiaPHP

En la vista[editar]

/app/view/cliente/page.phtml

      <? View::partial('datagrid/paginado', false,array('Model'=>$page, 'Campos'=>$campos, 'Paginator'=>$paginator, 'Url'=>$url )) ?>

Partials[editar]

/app/view/partials/datagrid/paginado.phtml

<?php
/**
 * Renderiza una tabla en base a un modelo.
 *
 * @author Andres Hal
 * 
 * @param array $Modelo modelo con los resultados a mostrar
 * @param array $Campos array con los que se quieren mostrar de la tabla
 * @return partial
 */
?>
 
	<div id="datagrid">
		<table  border="1px" width="100%"  class="paginado">
		<thead><tr>
			<?php foreach( $Campos  as $titulo => $valor): ?>
				<th> <?php echo $titulo ?></th>
			<?php endforeach; ?>
		</tr></thead>
                <tbody>
		       <? foreach( $Model->items as $model):
				echo tr_color_class( 'tr_primary', 'tr_secondary' );
					foreach($Campos as  $campos): ?>
					    <td><?php echo $model->$campos ?></td>
				       <?php endforeach; ?>
				</tr>
			<?php endforeach; ?>
		</tbody></table>
        	<?php	View::partial('paginators/'. $Paginator, false, array('page' => $Model ,'url' => $Url)); ?>
	</div>

Resultado Final[editar]

Resultado Final