Autocompletar CJuiAutoComplete

Buenas tardes, he implementado un autocompletar por medio de CJuiAutoComplete despliega bien los valores cuando la consulta da como resultado menos o igual a 10 resultados, sin embargo cuando hay mas de 10 resultados en base e datos CJuiAutoComplete continua desplegando solo 10

En mi vista tengo:




<?php echo $form->hiddenField($model,'id_proveedor',array()); ?>


        <?php 

 $this->widget('zii.widgets.jui.CJuiAutoComplete',

    array(

      'model'=>$model,

      'attribute'=>'prov_nombre',

      'source'=>$this->createUrl('/proveedor/patrocinado/autocompleteFinal'),

      'options'=>

         array(

               'showAnim'=>'fold',

			   'size'=>'30',

			   'minLength'=>'3',

               'select'=>"js:function(event, ui) {

                  								$('#Patrocinado_id_proveedor').val(ui.item.id);

                         }"

                ),

				'htmlOptions'=>array(

          'size'=>60,

		  'placeholder'=>'Buscar Proveedor...',

          'maxlength'=>60,

        ),

    )); 



Controlador :




		public function actionAutocompleteFinal () {

  if (isset($_GET['term'])) {

  

    $criteria=new CDbCriteria;

	$criteria->alias = "prov";

    $criteria->condition = "prov.razon_social like '%".$_GET['term']."%'";

	$criteria->order='nombre';

	$criteria->limit = 30;

   $dataProvider = new CActiveDataProvider(get_class(TblProveedor::model()), array(

'criteria'=>$criteria,

));

    $proveedores = $dataProvider->getData();

    $return_array = array();

    foreach($proveedores as $proveedor) {

      $return_array[] = array(

                    'label'=>$proveedor->razon_social,

                    'value'=>$proveedor->nombre,

                    'id'=>$proveedor->id_proveedor,

                    );

    }

    echo CJSON::encode($return_array);

  }

}



Espero alguien me pueda ayudar , he buscado pero no se a que se debe a que solo me muestre hasta 10 resultados cuando me he cercioro que en base de datos con los mismos criterios de consulta tengo hasta 50 resultados o mas

Ok… creo que tu problema es porque estas utilizando un CActiveDataProvider… y por omision esa clase solamente obtiene 10 registros por cada consulta… eso a menos que le indiques lo contrario… con pagination … pero ese es otro tema en al que no deberias entrar…

Para solucionarlo simplemente no uses CActiveDataProvider y hazlo directamente con la clase del modelo… ej:


/* Esto ya no es necesario */

//$dataProvider = new CActiveDataProvider(get_class(TblProveedor::model()), array(

//   'criteria'=>$criteria,

//));

//$proveedores = $dataProvider->getData();


// Esta es la forma en que deberias hacerlo

$proveedores = TblProveedor::model()->findAll($criteria);

Espero te sirva…

Muchas gracias funciona a la perfección