Сортировка CGridView созданого из CArrayDataProvider

Создаем экземпляр класса CArrayDataProvider:




$items = array(array('id'=>1, 'title'=>'Title1', 'description' => 'Description1'),

               array('id'=>2, 'title'=>'Title2', 'description' => 'Description2'),

               array('id'=>3, 'title'=>'Title3', 'description' => 'Description3'),

               array('id'=>4, 'title'=>'Title4', 'description' => 'Description4'));


$sort = new CSort;

$sort->defaultOrder = 'id DESC';

$sort->attributes = array('id');

        

		

$itemsProvider = new CArrayDataProvider($items, array(

        'keyField'   => 'id', 

        'pagination' => array(

                'pageSize'=>3,

        ),

        'sort' => $sort));



Вызываем виджет:




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

                'id' => 'itemGrid',

                'dataProvider' => $itemsProvider,

                'columns' => array(

                    array(

			            'name'  => 'ID',

			            'value' => '$data["id"]'

                    ),

                    array(

                        'name'  => 'Title',

                        'value' => '$data["title"]'

                    ),

                    array(

                        'name'  => 'Description',

                        'value' => '$data["description"]'

                    )

                ),

                'enableSorting' => true,

        ));

?>



Обязательно нужно использовать CArrayDataProvider.

Источник данных массив, не важно какого происхождения.

Нужно чтоб заработала сортировка, а она не хочет.

Перепробовал много разных способов.

Подскажите, как правильно?

Спасибо.

так что это:


$sort = new CSort;

$sort->defaultOrder = 'id DESC';

$sort->attributes = array('id');

работать не будет,

на ум приходит только писать свой класс переопределяющий CSort


$criteria = new CDbCriteria;        

$sort = new CSort;

$sort->defaultOrder = 'id DESC';

$sort->applyOrder($criteria);

Попробовал с этим примером вот так:




$itemsProvider = new CArrayDataProvider($items,array(

  'sort'=>array(

    'attributes'=>array(

      'id',

  )), 

  'pagination'=>false,

));


...


'columns' => array(

  'id',

),


...




и все сортируется хорошо