2016-06-23 6 views
1

Yii2 GridViewウィジェットのヘルプが必要です。 問題は です。ソートされていない列名をクリックすると、デフォルトでminからmaxにソートされます(defaultOrderのSORT_ASC constなど)。クリックでソート順を逆にするにはどうすればよいですか(SORT_DESCなど)は最大から最小にする必要があります。Yii2 GridViewウィジェット、オンクリックのソート順を逆にする必要があります

デフォルトのソート順を選択するには問題はありませんが、変更する必要がありますonclick orderです。 dataProviderのソートオプションは次のとおりです。

  'sort' => [ 
      'attributes' => ['weekly_length','name', 'market','unique','sessions','retentions', 'session_length_summary',], 
      'defaultOrder' => ['weekly_length' => SORT_DESC], 
      ], 
+0

をあなたは再びそれをクリックした場合はそれをDESCをソートしますし、再度クリックするとASCになります。 –

+0

ありがとう、キャプテン! – Teo

+0

Therは大きなテーブルであり、2回ソートするのに時間がかかることがあります。私はユーザーの時間/ – Teo

答えて

2

と同じようにあなたのソート順序を逆: - あなたは以下のように使用することができます

'sort' => [ 
      'attributes' => [ 
       'weekly_length' => [ 
        'asc' => ['weekly_length' => SORT_DESC,], 
        'desc' => ['weekly_length' => SORT_ASC], 
       ] 
      ] 
     ] 
+0

良いアイデアを保存しようとするが、完璧ではない。矢印は、ソート順が逆になっています) とにかく感謝します。より良い解決策が提示されない場合、私は数時間待つでしょう - あなたを取る。 – Teo

+0

あなたのアイデアを使用してください。ありがとうございます/ – Teo

1

$dataProvider->setSort([ 
      'attributes' => [ 
        'weekly_length' => [ 
         'asc' => ['weekly_length' => SORT_DESC], 
         'desc' => ['weekly_length' => SORT_ASC], 

        'defaultOrder' => ['weekly_length' => SORT_DESC] 
       ], 
      ] 
     ]); 
+0

これは最初の回答とほぼ同じですが、datProviderの宣言を検索せずに変更することができます。マイナス - 既存のソート設定を書き換えるので、注意してください。 – Teo

関連する問題