You are viewing documentation for an older version. For current documentation - click here.

FusionCharts can be easily and extensively used to create drill-down charts. All the charts (except for Zoom line chart) in FusionCharts v3 suite support drill down for data elements i.e., in each chart type, the data plot of that chart (columns in Column Charts, Pie slices in Pie Charts etc.) can act as hotspots for the chart. Using the drill down functionality provided by FusionCharts, you can easily produce charts that enact "drill down" or "zoom in (data)" capabilities. Moreover, you can make the whole chart as a hot-spot for drill-down.

Broadly, drill-down feature can be divided into two types:

  1. Simple links : Drill-down to open simple URLs or call JavaScript functions (present on same page)
  2. Chart links (LinkedCharts): Drill-down to detailed LinkedCharts

Using FusionCharts, you can create endless levels of drill-down. It has been kept very generic to accommodate all types of requirements.

Using Simple links In FusionCharts v3, you can define the following types of links:

We will progressively see each type of drill-down in this page and in the pages that follow. Moreover, later in this section, we will learn how Chart links (LinkedCharts) work.

Defining links for a Chart

To define a simple link for any data plot, just define the link attribute for the <set> element as under:
<set ... value='2235' ... link='ShowDetails.asp%3FMonth%3DJan' ...>

With the above XML, the data plot (be it column, pie or line/area anchor), when clicked, will take to the page ShowDetails.asp?Month=Jan, which might contain another chart to show detailed results for the month of January.

As you will note, the above link has been Url Encoded. FusionCharts expects all the links in Url Encoded format, if you have characters special characters (like ?,&, etc.) in your link. When the user clicks on the link, FusionCharts decodes it and invokes ShowDetails.asp?Month=Jan.

All the server side scripting languages provide a generic function to Url Encode any string - like in ASP and ASP.NET, we've Server.URLEncode(strURL) and so on.

XML Example:
<chart caption='Monthly Sales Summary' 
      subcaption='For the year 2006' xAxisName='Month' yAxisName='Sales' numberPrefix='$'> 
          <set label='Jan' value='17400' link='DemoLinkPages/DemoLink1.html'/> 
          <set label='Feb' value='19800' link='DemoLinkPages/DemoLink2.html'/> 
          <set label='Mar' value='21800' link='DemoLinkPages/DemoLink3.html'/> 
          <set label='Apr' value='23800' link='DemoLinkPages/DemoLink4.html'/> 
          <set label='May' value='29600' link='DemoLinkPages/DemoLink5.html'/> 
          <set label='Jun' value='27600' link='DemoLinkPages/DemoLink6.html'/> 
      </chart>
See it live!
Opening links in new window

Quite often, you might want to open the drill-down link in a new window instead of the same window. To have a link open in a new window, all you need to do is, add n- before any link. E.g.,

<set ... value='2235' ... link='n-ShowDetails.asp%3FMonth%3DJan' ...>

The above link, when clicked, would open in a new window.

Example XML:

<chart caption='Monthly Sales Summary' 
      subcaption='For the year 2006' xAxisName='Month' yAxisName='Sales' numberPrefix='$'>
          <set label='Jan' value='17400' link='n-DemoLinkPages/DemoLink1.html'/>
          <set label='Feb' value='19800' link='n-DemoLinkPages/DemoLink2.html'/>
          <set label='Mar' value='21800' link='n-DemoLinkPages/DemoLink3.html'/>
          <set label='Apr' value='23800' link='n-DemoLinkPages/DemoLink4.html'/>
          <set label='May' value='29600' link='n-DemoLinkPages/DemoLink5.html'/>
          <set label='Jun' value='27600' link='n-DemoLinkPages/DemoLink6.html'/>
      </chart>
See it live!

Note: Internally the chart decodes a Url that you set as link. Before invoking the link it again encodes the Url. If you are passing multilingual characters via a Url or do not want this decode-encode mechanism to be handled by chart you can set, unescapeLinks='0' in <chart> element of the chart's XML data. If you are using JSON data, you need to use { "chart" : { "unescapeLinks" : "0" ... } ... } .