2015-11-07 64 views
0

的Javascript:SortBy不DataTable中dc.js工作

dc.dataTable('.dc-data-table') 
    .dimension(date) 
    //... 
    .group(function (d) { 
     var format = d3.time.format('%B, %Y'); 
     return format(d.date); 
    }) 
    .sortBy(function(d) { 
     return d.date; 
    }) 
    .order(d3.ascending); 

SortBy沒有什麼效果和秩序了。如何解決這個問題?

https://jsfiddle.net/u073mab0/2/

+2

你的例子在我的團隊中適合我。日期按升序排序。如果我將sortBy訪問器切換到'return -d.date;',它將按降序排序。如果我切換訂購,也一樣。你的問題是這些組的排序?這些也按照順序排序,但由於它們是文本,因此它們按文本排序。我想可以使用自定義排序功能來處理這個問題。 –

+1

在[jsfiddle](https://jsfiddle.net/jvLb2w31/2/)上修復組的排序。適用於我。 Thx – jincod

回答

4

所有代碼示例的問題是你使用的是舊版本的DC種類的dc.js版本適用於FF/IE,但無法在Chrome。

那麼這就是@EthanJewett能夠看到它排序的原因,因爲他可能會在FF或IE中看到它。

而我無法看到,因爲我在鍍鉻。

請使用dc.js https://cdnjs.cloudflare.com/ajax/libs/dc/2.1.0-dev/dc.js

新版本的工作實例here

希望這有助於!

+0

這幫助排序在一個組中,thx。但是,組被按「隨機」排序:) – jincod

+0

按照Ethan的說法,它按字母順序排序。儘管我沒有看到按Date對象排序然後格式化爲字符串的方法,但可以使用'.order'來影響它。 – Gordon

+0

非常有趣,它只是在Chrome中不起作用。我在Safari中查看了它的記錄。 –