Cgridview Link Sortujący.

Witam,

czy jest jakaś szansa na zrobienie linku sortującego danych niezwiązanych z bazą danych?

Czyli mamy custom-ową kolumnę zawierającą powiedzmy dane od 1 - 10




'columns' => array(

             

              array(

                     'name' => 'OneToTen',

                     'value' => '$data->randomNumber(), 

              ),




Da się coś takiego zrobić z aprobatą Yii, czy trzeba rzeźbić?

Jeśli danych z tej kolumny nie ma w bazie, to jest pewien problem, bo sortowanie odbywa się juz na etapie zapytanie do bazy, które zwraca odpowiednio posortowane dane. Możesz spróbować wstrzyknąć te dane do zapytania przez SELECT CASE => http://athlan.pl/mysql-case-when-then-else-end/

rob006, dzięki za podpowiedź.

Na razie mam problem, żeby chęć sortowania wysłać na serwer w zgodzie z CGridView, znalazłem w dokumentacji coś takiego http://www.yiiframework.com/doc/api/1.1/CSort#link-detail wygląda ciekawie.

Kolejny kłopot, to dane na podstawie, których ma być sortowanie są danymi uzyskiwanymi już po wyciągnięciu/przerobieniu z MySQL’a. Przydałby się jakiś callback na podstawie, którego moglibyśmy wykonać operację sortowania już pobranych danych.

Najprostszym rozwiązaniem chyba byłoby zrobienie sortowania po stronie JavaScript. Pytanie, czy istnieją może jakieś gotowce dla CGridView umożliwiające sortowanie po stronie klienta?.

Możesz spróbować tego: http://www.yiiframework.com/doc/api/1.1/CArrayDataProvider

Ale to ma tylko sens przy mniejszych ilościach danych - przy dużych zbiorach ja bym kombinował jak te dane wrzucić o bazy, tak aby móc po nich sortować w zapytaniu. Pluginy JS niewiele ci tutaj pomogą, bo wszystkie będą sortowały tylko jedną stronę wyników, więc są również bezużyteczne przy większych ilościach danych.

Nie mogę sobie tego teraz wyobrazić - właściwie, to jaki jest problem z sortowaniem po stronie klienta?

//EDIT

już wiem :) na każdej stronie będą ciągle różne wartości.