当时,我的Yii CGridView排序不以这种方式工作
public function search() {
$criteria = new CDbCriteria;
$criteria->order = "member_id DESC";
当我点击CGridView
中的标题菜单时,它不起作用,但当我删除时
$criteria->order = "member_id DESC";`
排序工作正常。我想在默认情况下显示记录order by member_id desc
。
删除此行$criteria->order = "member_id DESC";
修改您的报税表:
return new CActiveDataProvider($this, array(
'criteria' => $criteria,
'sort' => array(
'defaultOrder' => 'member_id DESC',
),
));
使用CActiveDataProvider:在此类CActiveData Provider中,您可以找到属性defaultOrder,以便在网格视图中设置相对于数据库表列名的取消可见顺序。
defaultOrder:defaultOrder是CActiveDataProvider类中的一个属性。此属性属于CSort类。由于类CActiveDataProvider继承了CSort,defaultOrder属性变成了CActiveData Provider的属性。
完成任务的语法是
$dataProvider = new CActiveDataProvider('YourModel',
array(
'sort' => array('defaultOrder' => 'member_id DESC')
));
将此$dataProvider传递到您的视图
$this->render('YourView', array(
'dataProvider' => $dataProvider
));
如果您想在CGridView 中显示结果
$this->widget('zii.widgets.grid.CGridView', array(
'id' => 'data-grid',
'dataProvider' => $model->search(),
'columns' => array(
'column1',
'column2',
'column3',
array('class' => 'CButtonColumn'),
),
));
我认为有问题
$criteria->order = "member_id DESC";
只需删除此行,然后添加
return new CActiveDataProvider($this,array(
'criteria'=>$criteria,
'sort'=>array(
'defaultOrder'=>'member_id DESC',
),
));
希望对你有帮助。