2011-06-27 13 views
0

線グラフなど、YUIの他のチャートとは異なり、データが利用できない場合、円チャートに空のチャートのアウトラインが表示されません。代わりに何も表示されません - ただ空白のスペース。データソースでデータが返されない場合のYUI円グラフの表示

データがないときに円グラフを表示する方法はありますか?

データソースからデータをプルするためのグラフを作成し、一定の間隔でポーリングします。

this.chart = new YAHOO.widget.PieChart(id + '_c', this.datasource, { 
     categoryField: categoryField, 
     dataField: dataField, 
     polling: interval * 1000, 
     wmode: 'opaque', 
     style: { 
      background: { color: '#fdfdfd' }, 
      legend: { display: 'right' } 
     } 
    }); 

答えて

0

これを行う方法は、ライブデータソースのonBeforeCallbackというメソッドをオーバーライドすることです。 http://developer.yahoo.com/yui/docs/YAHOO.util.DataSourceBase.html#method_doBeforeCallback

オーバーライド可能方法は データの前に実装を元の完全な応答と(所与のスキーマに対して構文解析) 解析された応答へのアクセスを提供し(該当する場合)、キャッシュに追加し、次に、コールバック関数に送り返されます。 生のレスポンスにアクセスし、解析された レスポンスにカスタムデータを入力するチャンスです。

これにより、データをチャートに送信する前に変更することができます。それが空であれば、ダミーの "No Activity"エントリを追加できます。

this.datasource.doBeforeCallback = function(oRequest, oFullResponse, oParsedResponse, oCallback) { 
    if (!oParsedResponse.results || oParsedResponse.results.length < 1) { 
     oParsedResponse.results = new Array({ "name": "No Activity", "count": "0" }); 
    } 
    return oParsedResponse; 
}; 
関連する問題