A atualização/destruição do gráfico do Dojox não funciona depois do dojo.byid
Pergunta
Eu criei um gráfico de dojo usando;
var pieChart = new dojox.charting.Chart2D("pieChart");
Depois, quero atualizar/destruir este gráfico. Então eu faço;
var pieChart = dojo.byId("pieChart");
pieChart.destroy();
Isso parece não ser funcional. Estou fazendo algo errado aqui?
melhor
Solução
Como você está usando dojox, o dojo.byid não retornará o objeto JavaScript, tente usar dijit.byid, acho que funcionará como sugerido abaixo:
var piechart = dijit.byid ("piechart"); Piechart.Destroy ();
O mesmo problema que eu estava enfrentando com dojox.form.busybutton depois de um grande esforço, encontrei isso ...
Outras dicas
Eu encontrei esse mesmo problema, onde criei o gráfico em um só lugar e depois queria destruí -lo em outro, mas não tinha referência ao objeto do gráfico. A única solução que encontrei é esvaziar o nó DOM que você usou para fazer o gráfico:
dojo.empty("pieChart");
A segunda variável referenciará o objeto DOM, não o objeto JavaScript que armazena o objeto do gráfico.
var pieChart = new dojox.charting.Chart2D("pieChart");
pieChartDom = dojo.byId("pieChart"); //you cannot destroy,
pieChart.destroy(); //you can destroy, this is original variable
Espero que ajude.