2013-01-24 41 views
4

我知道如何最初爆炸一個餅圖楔形(簡單地將相關數據項的explode設置爲true),但是我想要做的是在JavaScript中單擊時使楔形爆炸(綁定到seriesClick的函數事件)。當然,我想要重新設置任何其他的爆炸楔子,這樣一次只能有一個爆炸楔子。點擊時如何爆炸劍道餅圖楔?

當然,我可以通過Ajax調用來獲取圖表,傳遞一個參數來指示被點擊的楔形,但是這樣做效率低下,可能令人生厭,這取決於連接和複雜性的數據(和/或所需的運算)。

我在其他地方發現了同一個問題的一個答案,但是建議的解決方案對於劍道圖(在劍道中不支持的屬性設置)不起作用。

如果有人在這方面有任何經驗,我將不勝感激您的任何建議。

回答

7

我發現這個職位在劍道論壇,被問同樣的事情,而且看起來有可能是在響應的解決方案:

http://www.kendoui.com/forums/dataviz/chart/explode-slices-onseriesclick.aspx

它的要點是,你需要更新數據中的「爆炸」字段,然後點擊圖表後重新繪製圖表。這可以用 「seriesClick」 事件來完成:


    seriesClick: function(e){ 
     $(e.sender.dataSource.options.data).each(function (i, item) { 
       if (item.source != e.category) 
       { 
        item.explode = false; 
       } 
       else 
       { 
        item.explode = true; 
       } 
     }); 
     createChart();   
    } 

我放在一起工作的jsfiddle在此基礎上:http://jsfiddle.net/derickbailey/FXs6b/

HTH

+1

謝謝你,德里克。我還有一個問題 - 一旦顯示圖表,你知道如何關閉動畫(轉換)嗎?也就是說,它在點擊一個楔子後重繪時不會顯示動畫。我發現在事件處理程序中將轉換設置爲false將不起作用。我可以將它關閉的唯一方法是將轉換設置爲false,然後我不會獲得我想要的初始動畫。 –

+0

P.S.我已經使用.refresh()方法,而不是重新創建圖表,但它仍然顯示動畫(轉換),即使設置爲false後。 –