2009-12-29 2 views
1

dojox.charting.widget.Chart2D을 사용하고 있는데 dojo.data.ItemFileReadStore에서 데이터를 검색하려고합니다. 데이터를 검색 할 수 있으며 모든 항목이 작동하고 표시됩니다. 단, 항목에 맞춤 라벨을 표시하는 방법을 찾을 수없는 것 같습니다.dojox.charting을 사용하여 데이터 저장소에서 사용자 정의 레이블 표시

<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은 다음과 같습니다 : 내 HTML 코드는 내가 시리즈의 label 속성을 설정하는 시도와 JSON의 labelAttribute 설정 한

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

. 또한 JSON에서 label을 시도했지만 작동하지 않았습니다. array에 JSON으로 데이터를 제공하거나 data을 시리즈에 직접 제공하면 작업 할 레이블이 생깁니다. DataStore를 통해 데이터를 제공함으로써 더욱 유연하게 만들고 싶었습니다.

답변

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> 

날 어떻게되는지 알려주세요.

+0

작동하지 않는 것 같습니다. 귀하의 제안에 따라 JSON을 생성하고'field = "slice"를 설정했지만 차트가 렌더링되지 않고 Firebug에서 오류가 발생하지 않습니다. 나는'label = "slice.text"와'valueFn = "Number (x.y)"를 변경하려고 시도했다. 아마도 그것들을 객체로 접근 할 필요가 있다고 생각했지만 여전히 운이 없다. 나는 실수를 저 지르지 않았 음을 확인하기 위해 되돌 렸고 이전과 같이 작업을 시작합니다. – Kitson

+0

'label' 또는'valueFn' 또는 그 밖의 것을 사용하지 않아도됩니다. 'identifier '를 제거하는 것을 잊어 버린 것 같습니다. 데이터를 깨끗하게 유지하려면'id'도 제거 할 수 있습니다. 나는 실제로 당신의 모범을 재창조했고, 지금은 나를 위해 일한다. –

+0

우 후! 그것은 매력처럼 작동합니다. 감사! – Kitson

-1

나는

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

mychart

변수입니다 .... .... 내가 사업부에서 차트를 작성하는 프로그래밍 방법을 사용하고 있지만, 사용자 정의 레이블 유사한 문제에 직면했다이 사람을 도움이되기를 바랍니다 차트 위젯을 만드는 데 익숙해졌습니다.

관련 문제