Quando filtra CGridView, perde Estilos e afins

Fala moçada, bom dia!

o único post relacionado que achei foi esse:

http://www.yiiframework.com/forum/index.php?/topic/10427-ajax-clientscript/

mas não me ajudou! Seguinte, tenho um CGridView que no filter eu botei um select (combo) personalizado, desse site:

http://www.adamcoulombe.info/lab/jquery/select-box/

quando eu filtro pelo combo ou qualquer outra coisa, o combo perde o estilo…como faço para arrumar isso?

Eric,

Você vai ter que adicionar o “$(’.mySelectBoxClass’).customStyle();” na propriedade “afterAjaxUpdate” do CGridView.

http://www.yiiframework.com/doc/api/1.1/CGridView#afterAjaxUpdate-detail

Exemplo:




$this->widget('zii.widgets.grid.CGridView', array(

    'dataProvider'=>$dataProvider,

    'afterAjaxUpdate'=>'function(){$('.mySelectBoxClass').customStyle();}',

    'columns'=>array(

        'title',          // display the 'title' attribute

        'category.name',  // display the 'name' attribute of the 'category' relation

        'content:html',   // display the 'content' attribute as purified HTML

        array(            // display 'create_time' using an expression

            'name'=>'create_time',

            'value'=>'date("M j, Y", $data->create_time)',

        ),

        array(            // display 'author.username' using an expression

            'name'=>'authorName',

            'value'=>'$data->author->username',

        ),

        array(            // display a column with "view", "update" and "delete" buttons

            'class'=>'CButtonColumn',

        ),

    ),

));



Veja se vai funcionar!

Fera d+++!!

funcionou que foi uma beleza…

obrigado cara!!

Newerton, aproveitando vc poderia ver esse erro tb:

eu tenho uma div:


<div id="pesquisa-grid-grupoPacote"></div>

eu fiz um componente que chama um ajax e retorna a grid via render partial:


$this->renderPartial('_gridGrupoPacote', array('model' => $model), false, true

e a grid:




<?php

$this->widget('application.widgets.GridView', array(

    'id' => 'pesquisa-grid-grupoPacote',

    'dataProvider' => $model->search(),

    'filter' => $model,

    'afterAjaxUpdate' => "function(){

        jQuery('select').customStyle();

    }",

    'columns' => array(

        array('name' => 'descPacote',

            'value' => '$data->cbcpaco->desc_pacote',

        ),

        array('name' => 'vcigrpr_id',

            'value' => '$data->vcigrpr->desc_tipo',

        ),

        array('name' => 'indr_obrigatorio',

            'filter' => array('S' => 'SIM',

                'N' => 'NÃO',

            ),

        ),

        'numr_ordem',

    ),

    'showTableOnEmpty' => true,

    'url' => $this->createUrl('getProdutoPorGrupo'),

    'attributeToUpdate' => 'produtoPacote-grid',

    'attributeToSend' => array('GrupoPacote_cbcpaco_id'),

));

?>



o que acontece: a linha jQuery(‘select’).customStyle(); diz que não existe, sendo que se eu tivesse chamado o renderPartial no lugar da div funcionaria, porém mostraria todos os registros…entende? eu queria que ao abrir o action não mostrasse nada…mas depois q clicasse no meu componente ele filtrasse a grid e mostrasse ela, por isso usei o ajax!