2011-07-13 85 views
1

如何反轉CGridView的順序(默認顯示最新的頂部)?Yii:反轉CGridView顯示順序

我目前擁有的GII生成的代碼:

public function actionAdmin() { 
    $model = new Post('search'); 
    $model->unsetAttributes(); 
    if (isset($_GET['Post'])) 
     $model->attributes = $_GET['Post']; 

    $this->render('admin', array(
     'model' => $model, 
    )); 

請幫助。謝謝。

回答

4

如果設置爲查詢的一部分,你將不能夠使用的列分揀機的訂單。您需要更新數據提供者創建的排序屬性,在這種情況下可能在提到的函數@ xiaohan2012中。它看起來是這樣的:

return new CActiveDataProvider('Post', array(
     'criteria'=>$criteria, 
     'sort'=>array(
      'defaultOrder'=>'update_time DESC', 
     ), 
    )); 

,或者創建一個完全自定義排序,你需要創建一個新的排序對象是這樣的:

在這種情況下
$sort = new CSort(); 
    $sort->defaultOrder = 'update_time DESC'; 
    $sort->attributes = array(
     'post_name'=>array(
      'asc'=>'post_name asc', 
      'desc'=>'post_name desc', 
     ), 
     'update_time'=>array(
      'asc'=>'update_time desc', 
      'desc'=>'update_time asc', 
     ), 
     [... additional columns] 
    ); 

,您的數據提供者會看的東西如:

return new CActiveDataProvider('Post', array(
     'criteria'=>$criteria, 
     'sort'=>$sort, 
    ));