Using CGridView in widget

Hello,

I’m using a simple CGridView in a CWidget. Pagination and Sorting works fine. Filtering doesn’t work at all.

components/ProductSelector.php:


class ProductSelector extends CWidget

{    

	public function run()

        {

           $this->render('productselector');          

        }

      

}

components/views/productselector.php:


    <?php 

    

            Yii::app()->clientScript->registerScript('search', "

            $('.search-button').click(function(){

                    $('.search-form').toggle();

                    return false;

            });

            $('.search-form form').submit(function(){

                    $.fn.yiiGridView.update('product-grid', {

                            data: $(this).serialize()

                    });

                    return false;

            });

            ");    

    

            $model=Product::model();                    

            

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

                'id'=>'product-grid',

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

                'filter'=>$model,

                'columns'=>array(

                    'sku',

                    'name'                    

                    )

                ));

    ?>

I’m calling this widget (in other views) by using


<?php $this->widget('ProductSelector', array()); ?>

What am I missing?

Thx for hints!

Debug/var_dump your controller method to see what’s coming in: var_dump($_POST,$_GET).

Debug/var_dump the search() method of your model.




public function search()

    {

        var_dump($this->attributes); //die(); //are the filter attributes assigned?       




        $criteria=new CDbCriteria;


        $criteria->compare('id', $this->id);

        ...


        var_dump($criteria); //die(); //What's about the criteria?   


        return new CActiveDataProvider(

            get_class($this),

            array(

                'criteria'=>$criteria,

            )

        );

    }




@Joblo

Thank you for your reply:

Needed $_GET vars are passed

Criteria seems fine (compared to values taken from gii standard admin view grid)

Attributes are empty! What am I doing wrong? Any hints?

Thanks in adavance!




$model = new Product('search');

$model->unsetAttributes();

if(isset($_GET['Product']))

  $model->attributes=$_GET['Product'];



@mbi:

that was the missing piece, thanks a lot!

best regards.