cambiar diseño del gridview

hola forum, quiero cambiar el diseño del gridview definido por yii2, hacerlo mas personalizado, como puedo hacerlo sin perder la programacion que viene ya con el cdo genero? gracias

Todo en yii1 o yii2 tiende a personalizarse extendiendo las clases bases.

Por ejemplo, yo prefiero que la columna serial de un gridview ponga en el header un N y sea de tamaño fijo, en lugar de poner las condiciones en cada gridview extiendo esa clase y es a la que llamo desde el gridview y sale como quiero.

Se personalizan los widgets más utilizados, añadiendo opciones o colocando las opciones que quieres por defecto directamente.

entonces si creo un diseño de gridview a mi gusto solo tengo que indicarle de donde coger el css e incluirlo en GridViewAsset?

Si solo quieres cambiar el css no necesitas extender las clases, lo entendí mal yo.

Para cambiar los estilos puedes:

  • no cargar bootstrap y cargar tus estilos

  • cargar bootstrap y después sobreescribir los estilos que quieras cambiar.

Lo último es más fácil.

Y sí, se hace en un AssetBundle, por ejemplo el que trae por defecto la aplicación:




<?php

/**

 * @link http://www.yiiframework.com/

 * @copyright Copyright (c) 2008 Yii Software LLC

 * @license http://www.yiiframework.com/license/

 */


namespace app\assets;


use yii\web\AssetBundle;


/**

 * @author Qiang Xue <qiang.xue@gmail.com>

 * @since 2.0

 */

class AppAsset extends AssetBundle

{

    public $basePath = '@webroot';

    public $baseUrl = '@web';

    public $css = [

        'css/site.css',

    ];

    public $js = [

		'js/base.js'

    ];

    public $depends = [

        'yii\web\YiiAsset',

        'yii\bootstrap\BootstrapAsset',

    ];

}



en este caso se cargarían:

css/site.css

js/base.js

pero antes se cargarían los archivos css y js de las dependencias, en este caso, de YiiAsset (jquery y js de forms de yii, …) y BootstrapAsset.

Los estilos de site.css sobreescribirian a los de bootstrap.

No necesitas hacer un asset nuevo (GridViewAsset), pero puedes hacerlo si quieres, poner en el nuevo AssetBundle los archivos que necesites y en AppAsset, en $depends añadirlo.