Sortowanie w GridView

Witam.

Jak w temacie potrzebuję zrobić sortowanie.

Samą ideę rozumiem, wiem jak to zrobić w modelu wyszukiwania tylko chcę osiągnąć coś takiego jak:

Mam kilka przycisków, które będą opisane i po kliknięciu na nim wywoła się już GridView posortowany według ustalonej kolumny.

Pytanie jak do tego podejść, poszczególne akcje i wywoływane przez przycisk czy jak, bo pisanie osobnych funkcji search dla każdego sortowania nie ma sensu. Jak to zrobić.

Proszę o jakieś porady, pokazanie jak to zrobić.

Edit:

Rozwiązane, zostawiam rozwiązanie dla innych:

Wystarczy utworzyć sobie poszczególne akcje i ustawić w jaki sposób chcemy dane sortować używając:


dataProvider->setSort([

            'defaultOrder' => ['attribute'=>SORT_ASC],]);

Wywołanie akcji powoduje wyświetlenie danych posortowanych w jaki sposób chcemy.

A nie prościej stworzyć poprawny link do przycisku, który w parametrze będzie miał pole po którym ma zostać posortowany grid?, np:




Html::a('Klienci',['customer/index', 'sort' => 'name'], ['class' => 'btn btn-success'])

Html::a('Klienci',['customer/index', 'sort' => 'login'], ['class' => 'btn btn-success'])

Html::a('Klienci',['customer/index', 'sort' => 'time'], ['class' => 'btn btn-success'])

Html::a('Klienci',['customer/index', 'sort' => 'address'], ['class' => 'btn btn-success'])