Domanda

Sto usando il dojox.charting.widget.Chart2D e sto cercando di recuperare i dati da un dojo.data.ItemFileReadStore. Posso recuperare i dati, e tutto funziona e display, tranne che non riesco a trovare un modo per visualizzare etichette personalizzate sulle voci. Il mio frammento di 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>

E il mio JSON dal ItemFileReadStore è:

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

Ho provato impostando l'attributo etichetta della serie e impostato il labelAttribute nel JSON. Ho anche provato appena label in JSON e non ha funzionato neanche. Quando mi fornisco i dati come JSON in un array o fornire il data direttamente nella serie, ottengo le etichette al lavoro. Volevo renderla più flessibile pur fornendo i dati tramite un archivio dati.

È stato utile?

Soluzione

Il modo per farlo è quello di modificare il vostro JSON un po 'e aggiornare attributi corrispondenti nel codice HTML.

JSON:

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

L'unico cambiamento significativo è quello di separare dati specifici torta in un sotto-oggetto (slice) per semplicità.

HTML (solo la linea negozio correlata dovrebbe essere modificato):

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

Fatemi sapere come va.

Altri suggerimenti

Ho dovuto affrontare problemi simili con etichette personalizzate, anche se stavo usando un modo programmatico per creare la tabella a div .... Spero che questo aiuta qualcuno ....

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

mychart è la variabile che ho usato per creare il widget grafico ....

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top