<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    道長A的地盤

    http://Java.Im 這個網址NB吧?是道長的新網站,您不去看看嗎?
    隨筆 - 28, 文章 - 1, 評論 - 73, 引用 - 0
    數據加載中……

    [AJava原創]FusionCharts Free中文開發指南[使用文檔教程]第九章--動態改變圖形的類型和數據

    在前面的章節里,我們已經了解了圖形的基本使用方法以及圖形XML,現在我們已經有能力做出基本的圖形了,如果你現在就把它應用到你的項目里,我認為沒有任何問題,而且我也相信你還能舉一反三地,發展出一些“新”的用法。
    那我們就開始吧。


    動態改變圖形的類型


    在項目中,我們有時會需要在頁面上方便地改變圖形的類型,當然,如果頁面不刷新就能看到改變的結果,那是最理想的。舉個例子來說,在一個頁面上,顯示了一個月銷售額的柱狀圖,但用戶要求還可以查看月銷售額的餅圖,區域圖。要實現這個需求,一般的做法是,再做兩個頁面,一個顯示餅圖,一個顯示區域圖,用戶想看這兩個圖,點擊連接就可以了。這樣的做法并沒有什么不妥。你還可以采用AJAX技術,來實現頁面無刷新,這樣用戶的體驗會更好一些。只是程序員累一點而已。
    難道我們一定要這么累嗎?不!其實我們可以有更好的辦法,前提是你采用了FCF作為你的報表解決方案。
    那么,在FCF里,是怎么實現上面的需求的呢?簡單點說,思路是這樣的:
    1、使用JavaScript加載第一個圖形(如柱狀圖),至于是用dataXML方法,還是dataURL方法,都可以。
    2、當需要改變圖形類型(如改成餅圖)時,我們再創建一個新的FusionCharts類實例(它的SWF文件是餅圖),把它render到原來的DIV。
    就是這么簡單。

    我們來看看代碼吧。


    <HTML>       
       
    <HEAD>       
          
    <SCRIPT LANGUAGE="Javascript" SRC="../../FusionCharts/FusionCharts.js"></SCRIPT>       
          
    <SCRIPT LANGUAGE="JavaScript">       
             
    //數據        
             var strXML = "<graph caption='Hours worked' showNames='1'> <set name='Tom' value='32' color='AFD8F8'/>   
         <set name='Mary' value='16' color='F6BD0F'/><set name='Jane' value='42' color='8BBA00'/></graph>
    ";        
             
    /*        
             * 當用戶單擊按鈕時調用這個方法。        
      * 這個方法用來使用新的SWF文件創建一個新的FusionCharts實例。        
             
    */
            
             
    function updateChart(chartSWF){        
                
    //Create another instance of the chart.        
                var chart1 = new FusionCharts(chartSWF, "chart1Id""400""300""0""0");         
                chart1.setDataXML(strXML);        
                chart1.render(
    "chart1div");        
             }
            
          
    </SCRIPT>       
       
    </HEAD>       
    <BODY>       
       
    <div id="chart1div">       
       FusionCharts        
       
    </div>       
       
    <script language="JavaScript">         
          
    var chart1 = new FusionCharts("../../FusionCharts/FCF_Column3D.swf""chart1Id""400""300""0""0");        
          chart1.setDataXML(strXML);        
          chart1.render(
    "chart1div");        
       
    </script>       
           
       
    <form name='frmUpdate'>       
       Show as:         
          
    <input type='button' value='Column' onClick="javaScript:updateChart('../../FusionCharts/FCF_Column3D.swf');" name='btnColumn' />         
          
    <input type='button' value='Line' onClick="javaScript:updateChart('../../FusionCharts/FCF_Line.swf');" name='btnLine' />         
          
    <input type='button' value='Pie' onClick="javaScript:updateChart('../../FusionCharts/FCF_Pie3D.swf');" name='btnPie' />         
    </form>       
       
    </CENTER>       
    </BODY>       
    </HTML>



    上面的代碼非常淺顯,就不做解釋了。


    動態改變圖形的數據

    我們已經會動態改變圖形的類型了,動態改變數據和上面的原來一樣,我們只需要在新建實例的時候,傳入新的數據就可以了。
    那么為什么還要單獨來講解這個呢?因為FCF給我們提供了一個更簡單的方法,那就是updateChartXML(domid,data)。它的第一個參數就是我們在創建FusionCharts實例時設置的圖形domid,第二個參數是XML數據字符。
    來看看下面的代碼。

    <HTML>   
       
    <HEAD>   
          
    <TITLE>FusionCharts Free & JavaScript - Updating chart using setDataXML() Method</TITLE>     
          
    <SCRIPT LANGUAGE="Javascript" SRC="../../FusionCharts/FusionCharts.js"></SCRIPT>   
          
    <SCRIPT LANGUAGE="JavaScript">   
             
    function updateChart(DOMId){    
                updateChartXML(domId,
    "<graph><set name='A' value='32' /></graph>");     
              }
        
          
    </SCRIPT>   
       
    </HEAD>   
       
    <BODY>   
          
    <div id="chart1div">   
             FusionCharts    
          
    </div>   
          
    <script language="JavaScript">     
             
    var chart1 = new FusionCharts("../../FusionCharts/FCF_Column3D.swf""chart1Id""400""300");     
             chart1.setDataXML(
    "<graph><set name='A' value='10' color='D64646' /><set name='B' value='11' color='AFD8F8' /></graph>");    
             chart1.render(
    "chart1div");    
          
    </script>     
          
    <form name='frmUpdate'>   
             
    <input type='button' value='改變數據' onClick="javaScript:updateChart('chart1Id');" name='btnUpdate'>     
          
    </form>     
    </HTML> 



    當我們單擊”改變數據“按鈕后,會調用updateChart()方法,它會使用新的數據來重新構建圖形。

    這種方案看起來,好像是比較好。然而,在前面我們說了,使用dataXML方法加載數據時,不能含有中文字符,同理,使用updateChartXML方法,也不能有中文字符。如果你要使用中文,還是用第一種方法吧。你可能會想,既然有updateChartXML方法,那是不是有updateChartURL方法呢?我們用它不就可以了嗎?是的,是有這個方法,不過,FusionCharts Free版本里沒有,只有FusionCharts版本里有。想用嗎?拿錢來!
    下章我們來講講FCF的下鉆圖形,聽上去很專業,其實就是圖形的連接,包括超連接,JavaScript。
    本文原始地址:http://ajava.org/hot/fusioncharts/876.html



    AJava.org --一個Java門戶! 轉載請以連接方式注明來自AJava.org

    posted on 2009-03-23 10:15 道長A@ajava.org 閱讀(2206) 評論(1)  編輯  收藏 所屬分類: FusionCharts 開發指南

    評論

    # re: [AJava原創]FusionCharts Free中文開發指南[使用文檔教程]第九章--動態改變圖形的類型和數據  回復  更多評論   

    updateChart
    這個方法又new了一次chart,測試了下如果多的話瀏覽器會掛掉...
    還不如改下他的原JS,在setDataXML時增加一個是否強制再次讀取XML數據
    2009-03-24 12:47 | aisdf
    主站蜘蛛池模板: 国产亚洲精品无码拍拍拍色欲| 国产又长又粗又爽免费视频| 久久夜色精品国产亚洲| 一级片在线免费看| 精品国产亚洲男女在线线电影| xxxxx做受大片在线观看免费| 国产成人亚洲影院在线观看| 中国极品美軳免费观看| 亚洲精品国产精品乱码在线观看 | 亚洲裸男gv网站| caoporn国产精品免费| 亚洲黄片手机免费观看| 两个人看的www免费视频| 亚洲视频中文字幕| 大地资源免费更新在线播放| 污网站在线免费观看| 亚洲国产精品无码久久久蜜芽 | AV片在线观看免费| 狠狠入ady亚洲精品| 国产亚洲av人片在线观看| 久久免费视频精品| 亚洲综合欧美色五月俺也去| 日本一道本高清免费| 美女被免费网站91色| 亚洲欧洲日本天天堂在线观看| 成人爽A毛片免费看| 国产va免费精品| 亚洲视屏在线观看| 国产精品免费看香蕉| 成全视频在线观看免费| 亚洲综合校园春色| 亚洲综合亚洲综合网成人| 久久一本岛在免费线观看2020| 亚洲乱码一二三四区乱码| 免费观看国产小粉嫩喷水| 久久久国产精品无码免费专区| 亚洲人成小说网站色| 亚洲人色婷婷成人网站在线观看| 久久久久久国产精品免费无码| 亚洲av日韩综合一区久热| 亚洲V无码一区二区三区四区观看|