使用dojox.charting从数据存储中显示自定义标签

时间:2009-12-29 21:52:01

标签: dojo dojox.charting

我正在使用dojox.charting.widget.Chart2D,我正在尝试从dojo.data.ItemFileReadStore检索数据。我可以检索数据,一切都可以工作和显示,除了我似乎找不到在项目上显示自定义标签的方法。我的HTML代码段是:

<div dojoType="dojo.data.ItemFileReadStore" jsId="chartDataStore" 
    url="json/archiveinfo.json.php"></div>
<div dojoType="dojox.charting.widget.Chart2D" id="chartTest" 
    theme="dojox.charting.themes.PlotKit.blue" style="width: 300px; height: 300px;">
  <div class="plot" name="default" type="Pie" fontColor="black" htmlLabels="false" 
    radius="100"></div>
  <div class="series" name="Series A" store="chartDataStore" field="y" 
    label="text" valueFn="Number(x)"></div>
  <div class="action" type="Tooltip"></div>
  <div class="action" type="MoveSlice"></div>
</div>

来自ItemFileReadStore的我的JSON是:

{"identifier":"id","labelAttribute":"text","items":
  [
    {"id":1,"y":55,"text":"Free"},
    {"id":2,"y":45,"text":"Used"}
  ]
}

我尝试在系列中设置label属性,并在JSON中设置了labelAttribute。我还在JSON中尝试了label,但它也没有用。当我在array中将数据作为JSON提供或直接在系列中提供data时,我会使标签生效。我真的想通过DataStore提供数据来使其更加灵活。

2 个答案:

答案 0 :(得分:1)

这样做的方法是稍微修改一下JSON并更新HTML中的相应属性。

JSON:

{
  "items": [
    {"id":1, "slice": {"y":55,"text":"Free"}},
    {"id":2, "slice": {"y":45,"text":"Used"}}
  ]
}

唯一有意义的改变是为了简单起见,在子对象(slice)中分离特定于饼图的数据。

HTML(只应修改与商店相关的行):

<div class="series" name="Series A"
  store="chartDataStore" field="slice"></div>

让我知道它是怎么回事。

答案 1 :(得分:-1)

我不得不面对自定义标签的类似问题,虽然我使用编程方式在div上创建图表....希望这有助于某人......

var mytooltip = new dojox.charting.action2d.Tooltip(mychart,"default", 
    {text: function(e) {
               var tooltiptext = <construct ur custom label here>   
               return tooltiptext;
        }
    }); 

mychart是我用来创建图表小部件的变量....