CGridView を使用してレコードを表示しています。アプリケーションでフィルタが正しく機能していません。Ajax 更新の代わりに、完全なページがリロードされます。ajax 呼び出しを使用してレコードをフィルター処理したい。これが私のコードです。
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'mage-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'ajaxUpdate'=>true,
'columns'=>array(
'entity_id',
'name',
'sku',
'type_id',
'price',
//'status',
array(
'name'=>'status',
'header'=>'Status',
'filter'=>array('1'=>'Enabled','2'=>'Disabled'),
'value'=>'($data->status=="1")?("Enabled"):("Disabled")'
),
array(
'class'=>'CButtonColumn',
'template' => '{update}{delete}',
// 'viewButtonUrl'=>'Yii::app()->controller->createUrl("/ad/view",array("id"=>$data["id"]))',
'buttons' =>array(
'update' => array(
'url'=>'Yii::app()->controller->createUrl("/mageproduct/update",array("pid"=>$data["entity_id"],"sid"=>SHOP_ID))',
'imageUrl'=>Yii::app()->request->baseUrl.'/images/icons/dark/create_write.png',
),
'delete' => array(
'url'=>'Yii::app()->controller->createUrl("/mageproduct/delete",array("pid"=>$data["entity_id"],"sid"=>SHOP_ID))',
'imageUrl'=>Yii::app()->request->baseUrl.'/images/icons/dark/trashcan.png',
// 'deleteConfirmation' => 'Delete?',
)
),
),
),
これが私のコントローラーアクションです
public function actionAdmin()
{
$model=new Mageproduct('search');
$model->unsetAttributes(); // clear any default values
if(isset($_GET['Mageproduct']))
$model->attributes=$_GET['Mageproduct'];
$this->render('admin' ,array(
'model' =>$model,
));
}
注:CArrayDataProviderを使用しています。