是否可以更改列标题单击排序的顺序?
我有一个“排名”列,在第一次点击时会按ASC排序,只有在第二次点击时才会进入DESC排序 - 我需要将其反转,以便第一次点击是DESC,第二次点击是ASC。< / p>
这可能吗?
return new CSqlDataProvider($sql . $search, array(
'totalItemCount' => $itemCount,
'params' => $params,
'sort' => array(
'attributes' => array (
'enabled',
'store_name',
'rating' => array (
'desc' => 'rating * percent / 100 DESC',
'asc' => 'rating * percent / 100 ASC',
),
),
'defaultOrder' => array( 'store_name'=>false )
),
'pagination' => array('pageSize' => Yii::app()->user->getState('pageSize_cs', Yii::app()->params['defaultPageSize']),),
));
答案 0 :(得分:2)
我知道这样做的唯一方法是导致列箭头指向错误的黑客攻击。
'desc' => 'rating * percent / 100 ASC',
'asc' => 'rating * percent / 100 DESC',
答案 1 :(得分:1)
我认为默认情况下,如果您点击CGridView
中显示的标题,如果您希望反向流程反向执行
ASC
public function search($status)
{
$criteria = new CDbCriteria;
$criteria->order = 'store_name desc';
}
答案 2 :(得分:0)
从Yii 1.1.3开始,为属性设置添加了default
密钥支持。这完全符合你的要求。例如:
'sort' => array(
'attributes' => array (
'enabled',
'store_name',
'rating' => array (
'desc' => 'rating * percent / 100 DESC',
'asc' => 'rating * percent / 100 ASC',
'default' => 'desc',
),
),
'defaultOrder' => array( 'store_name'=>false )
),