2014-05-20 7 views
6

Po prostu chcę posortować kolumnę 0 malejąco. Używam tego kodu:Sortuj w Google Table Chart

var table = new google.visualization.ChartWrapper({ 
    chartType: 'Table', 
    containerId: 'chart_table_a', 
    options: { 
    sortColumn: 0, 
    sortAscending: false, 
    sort: 'enable' 
    } 
}); 

nie chcę, aby stół sortable, ale kod działa tylko z sort: 'enable'.

Czy istnieje sposób sortowania bez konieczności sortowania tabeli?

Odpowiedz

9

sortować DataTable:

// sort by column 0, descending 
data.sort({column: 0, desc: true}); 

lub użyć posortowane DataView:

var view = new google.visualization.DataView(data); 
view.setRows(data.getSortedRows({column: 0, desc: true})); 
table.draw(view, options); 

Sortowanie DataTable modyfikuje rzeczywistą kolejność danych, a także wpłynie na inne wykresy/tabele, które korzystają z DataTable . Może to być kosztowne pod względem wykorzystania procesora, jeśli DataTable zawiera dużą liczbę wierszy. Korzystanie z DataView zachowuje dane w oryginalnej DataTable (kosztem niewielkiego zwiększenia wykorzystania pamięci) i jest stosunkowo tanie pod względem czasu procesora, ale jeśli twoja DataTable nie jest duża lub nie masz żadnych innych wykresów polegać na tym, prawdopodobnie bezpiecznie sortujesz bazę danych.

+0

Dzięki Andrew. Właśnie zaktualizowałem kod, ponieważ używałem tabeli jako części pulpitu. W takim przypadku jak mogę skorzystać z jednego z Twoich rozwiązań? – Khrys

+1

Można nadal sortować bazę danych DataTable (lub utworzyć posortowany DataView, aby sterować pulpitem). Jeśli masz inne wykresy, które zależą od określonego porządku sortowania i chcesz zmienić kolejność sortowania tylko dla tabeli, to staje się to nieco trudniejsze. – asgallant

+0

Dzięki Andrew. Jedynym powodem, dla którego użytkownik nie może sortować, jest: Kiedy użytkownik posortuje tabelę, stracił zastosowane niestandardowe css (zacznę od tego pytania inne pytanie). – Khrys