2012-05-18 14 views
6

एएसपी.NET साइट में हाईचर्ट 2.2.3 का उपयोग करना। कोड उदाहरण के लिए http://jsfiddle.net/wergeld/TDLvc/ देखें। मेरी साइट सेटअप jsFiddle दिखाता है उससे थोड़ा अलग है। श्रृंखला को बदलने के लिए मेरा फ़ंक्शन एक जेएस फ़ाइल में मौजूद है और फ़ंक्शन पर कॉल चार्ट निर्माण जेएस कोड के साथ "इन-लाइन" नहीं है (हालांकि यह अभी भी एक दस्तावेज़ तैयार jquery में लपेटा गया है)।हाईचर्ट्स गतिशील रूप से चार्ट प्रकार

मेरे पास दो मुद्दे हैं और इनमें से एक जेएसफ़िल में देखा जा सकता है। 1) चार्ट प्रकार बदलते समय ऐसा लगता है कि yxis पदनाम खो जाता है। आप देख सकते हैं कि मेरे पास मूल रूप से 2 yAxis है और आप चार्ट प्रकार को बदलने के बाद शीर्ष अक्ष में अब मूल्य लेबल नहीं हैं (इसका मतलब है कि चार्ट डेटा केवल नीचे धुरी (पहले yAxis) का उपयोग कर रहा है)। 2) जब एफएफ या IE के तहत इस चल रहा लाइन है कि कॉल पर एक त्रुटि प्राप्त:

data: serie.options.data 

त्रुटि है: ग एक निर्माता नहीं है लाइन 55 highcharts.js में (इस मिनट है -ed फ़ाइल)।

का उपयोग highcharts.src.js मैं अब देख सकते हैं कि त्रुटि है: typeClass एक निर्माता

यह src.js में लाइन 8789 पर है नहीं है: सेरी = नए typeClass();

अद्यतन जेएसफ़िल्ड देखें: चार्ट प्रकार के रूप में प्वाइंट का चयन करें: http://jsfiddle.net/wergeld/nS4Ny/1/। यह उस त्रुटि को फेंक देगा।

उत्तर

7

यह समस्या हमारे ड्रॉप-डाउन मानों का पूंजीकरण है। चेक करने के लिए चेक बदल दिया:

newType = newType.toLowerCase(); 

अब चार्ट प्रकार में बहुत अधिक प्रभाव पड़ता है। पूर्ण कोड:

function changeType(chart, series, newType) { 
     newType = newType.toLowerCase(); 
     for (var i = 0; i < series.length; i++) { 
      series = series[0]; 
      try { 
       series.chart.addSeries({ 
        type: newType, 
        stack: series.stack, 
        yaxis: series.yaxis, 
        name: series.name, 
        color: series.color, 
        data: series.options.data 
       }, 
       false); 
       series.remove(); 
      } catch (e) { 
       alert(newType & ': ' & e); 
      } 
     } 
    } 
+1

यदि आप अद्यतन पहेली साझा करते हैं तो यह अच्छा होगा। पाई चार्ट संभव विकल्प था। – Rinzler

+0

पाई चार्ट संभव हो सकता है - हमारे लिए कोई चिंता नहीं थी क्योंकि हम कभी भी पाई चार्ट का उपयोग नहीं करते थे। एक अद्यतन पहेली आवश्यक नहीं था - जैसा कि मैंने अपने स्वयं के प्रश्न का उत्तर दिया और मेरे जवाब में निश्चित कोड दिया। – wergeld

+0

या तो ठीक है लेकिन अगर मैं कुछ घटना के साथ पाई और कॉलम चार्ट के बीच टॉगल कर सकता हूं तो इससे मदद मिलेगी, – Rinzler

0

किसी को भी है कि इस करवाते हैं ठोकर के लिए ... आप पहली बार पिछले से करने के लिए चार्ट 'श्रृंखला को निकालना होगा। अंतिम श्रृंखला पर फिर से लिखना याद रखें या आपके परिवर्तन प्रदर्शित नहीं होंगे :)

function changeChartType(chart, type, redraw) { 
    var seriesOptions = new Array(chart.series.length); 
    for (var i = 0; i < chart.series.length; i++) { 
     var series = chart.series[i]; 
     seriesOptions[i] = { 
      type: type, 
      name: series.name, 
      color: series.color, 
      dashStyle: series.options.dashStyle, 
      lineWidth: series.options.lineWidth, 
      marker: series.options.marker, 
      dataLabels: series.options.dataLabels, 
      enableMouseTracking: series.options.enableMouseTracking, 
      data: series.options.data, 
      isRegressionLine: series.options.isRegressionLine 
     }; 
    } 
    for (var i = chart.series.length - 1; i >= 0; i--) { 
     chart.series[i].destroy(); 
    } 
    for (var i = 0; i < seriesOptions.length; i++) { 
     var newSeries = chart.addSeries(seriesOptions[i], redraw && i == seriesOptions.length - 1); 
    } 
    chart.currentType = type; 
} 
संबंधित मुद्दे