2016-06-23 9 views
1

Ich brauche Hilfe mit Yii2 GridView Widget. Problem ist: Wenn Sie auf unsortierte Spaltennamen klicken, wird standardmäßig von min bis max sortiert (wie SORT_ASC const in defaultOrder). Was sollte ich ändern, um die Sortierreihenfolge beim Klicken umzukehren, sollte es von max bis min sein (wie SORT_DESC).Yii2 GridView Widget, müssen auf der Maus klicken Sortierreihenfolge

Es gibt kein Problem zu wählen, Standard-Sortierreihenfolge onload, ich muss ändern, es ist onclick Reihenfolge. Sortieroptionen von Datenprovider sind:

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

, wenn Sie erneut klicken, wird es es DESC sortieren und wenn wieder geklickt, dann ASC. –

+0

Danke, Kapitän! – Teo

+0

Ther ist ein großer Tisch, und es könnte lange dauern, zweimal zu sortieren. Ich versuche, Benutzer Zeit zu sparen/ – Teo

Antwort

2

Nur Ihre Sortierung umkehren als: -

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

Gute Idee, aber nicht perfekt. Works coorectly, aber Pfeil, der sortierende Sortierreihenfolge ist umgekehrt) Wie auch immer danke. Ich werde ein paar Stunden warten, wenn keine bessere Lösung vorgeschlagen wird - nehmen Sie Ihre. – Teo

+0

Verwenden Sie Ihre Idee. Nochmals vielen Dank/ – Teo

1

Sie wie unten verwenden:

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

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

Dies ist fast das gleiche wie die erste Antwort, aber erlauben Sie es, ändern Sie es ohne Deklaration von DataProvider suchen. Minus - es überschreibt existierende Sortiervorlieben, also sei vorsichtig. – Teo