Check documentation for the latest version of dhtmlxSuite Grid Integration DHTMLX Docs

Grid Integration

Pretty often, you may need to integrate grid with chart, i.e. show grid's data and their changes on chart.

And this article we'll devote to grid-chart integration.

chart/grid-chart_01.png

Related sample:  Integration with grid

In short, the integration is implemented through the only code line:

myChart.parse(mygrid,"dhtmlxgrid");

In detail, to perform the integration you should make the following steps:

  1. Create dhtmlxChart object;
  2. Create dhtmlxGrid object;
  3. Load data to the grid;
  4. Load data from the grid to the chart;
  5. Additionally, implement chart refreshing when data in the grid is changed;
  6. And put everything into window.onload function to ensure that our code will be performed as soon as the page finishes loading.

Step 1. Create dhtmlxChart object

var myChart =  new dhtmlXChart({
    view:"bar",//sets chart's type. In our case it's vertical bar
    color:"#66ccff", //sets color of bars
    container:"chart_container",// an html container that will contain our chart
    // sets data that chart will present. #data0# refers to the first column of the grid
    value:"#data0#", 
    label:"#data0#", // specifies chart labels
    width:30, // sets the width of bars
    origin:0, //represents positive and negative values
    yAxis:{  //sets vertical axis
        start:-1000,
        step: 500,
        end:2000    
    },
    xAxis:{ 
        template:function(){
            return ""
        } //horizontal axis without labels
    }
});

Step 2. Create dhtmlxGrid object

var mygrid = new dhtmlXGridObject('gridbox');// creates dhtmlxGrid instance
mygrid.setSkin("dhx_skyblue")// sets skin of our grid

Step 3. Load data to the grid.

// loads data to the grid from the external file gridData.xml
mygrid.load("xml/gridData.xml");

Step 4. Load data from the grid to the chart

myChart.parse(mygrid,"dhtmlxgrid")// loads grid's data to the chart

Step 5. Implement chart refreshing when data in the grid is changed

// the function is called every time data in the grid is changed
function refresh_chart(){ 
    myChart.clearAll();// clears chart dataset
    myChart.parse(mygrid,"dhtmlxgrid"); //loads new grid data to the chart
};
 
mygrid.attachEvent("onEditCell",function(stage){// fires after the editor is closed
    // specifies stage of editing. "2" means that event will fire when the editor closes
    if (stage == 2)
    refresh_chart();// calls the function defined before
    return true;
});

Step 6.Put everything into window.onload() function

//the function ensures that our code will be performed when the page's loading ends
window.onload = function(){ 
...//the code stated above
}
Back to top