如何在yii1中对cgridview进行默认排序
我有以下cgrid视图如何在yii1中对cgridview进行默认排序,yii,cgridview,yii1.x,Yii,Cgridview,Yii1.x,我有以下cgrid视图 $this->widget('zii.widgets.grid.CGridView', array( 'id'=>'complaint-job-grid', 'dataProvider'=>$model->search($complaint), //~ 'filter'=>$model, 'columns'=>$columns, 'enableSorting'=>true, ));
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'complaint-job-grid',
'dataProvider'=>$model->search($complaint),
//~ 'filter'=>$model,
'columns'=>$columns,
'enableSorting'=>true,
));
我的模型代码是
public function search($complaint)
{
// @todo Please modify the following code to remove attributes that should not be searched.
$criteria=new CDbCriteria;
$criteria->with = array('complaint_job','user');
$criteria->compare('complaint_job.job_desc',$this->job_search, true);
if($this->user_search)
$criteria->addSearchCondition('CONCAT(first_name," ",last_name)', $this->user_search);
$criteria->compare('complaint_id',$complaint);
$criteria->compare('id',$this->id);
$criteria->compare('job_id',$this->job_id);
$criteria->compare('local_description',$this->local_description,true);
$criteria->compare('employee_id',$this->employee_id);
$criteria->order = 't.id ASC';
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
));
}
所以我基本上想要的是在cgridview中以id(主键)的降序显示值。可能吗
我这样试了,但没有成功
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
'sort'=>array(
'defaultOrder'=>'id ASC',
),
您正在CDbCriteria中进行排序; 这就是为什么使用CActiveDataProvider的CGridView中的排序不起作用。 从模型中删除:
$criteria->order = 't.id ASC';
并添加到CActiveDataProvider
'defaultOrder'=>'t.id ASC',
'defaultOrder'=>'id DESC',
??@Criesto不,它不起作用。有没有办法在视图文件而不是模型中进行默认排序?是否有错误?在视图中执行此操作不是一个好主意您应该遵循MVC结构,为什么在gridview
小部件中有[/size]
?不,我没有:-)是的,我收到一个错误“CDBEException”“。是否有任何方法在视图中执行此操作?如果您想在视图中执行此操作,则必须自定义整个操作,我建议您不要这样做。”。用你遇到的错误更新你的问题。我会尝试一下,然后很快回复你“defaultOrder”=>“t.id ASC”,精彩而简单~