我使用 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。