To load additional data to the grid you can use:
To make some extra data in the grid invisible, you can hide some column(s). So, the data in such column(s) will be invisible to users but accessible by API.
To hide a column, use the setColumnHidden method:
mygrid = new dhtmlXGridObject('gridbox');
mygrid.setSkin("dhx_skyblue");
mygrid.setImagePath("./codebase/imgs/");
mygrid.setHeader("Name, Email, Age");
grid.init();
grid.setColumnHidden(0,true); //hides the 1st column
Related sample: Hide/Show column
The data from hidden columns can be accessed in a usual way:
var value = grid.cells("row1",0).getValue();
grid.cells("row2",1).setValue(value);
In case of initialization from XML, a column can be hidden as in:
<rows>
<head>
<column hidden="true">Dummy</column> </head>
</rows>
By default, data of hidden columns is included into serialization and can't be controlled by the setSerializableColumns method. Also, the data of hidden columns is available during dataProcessor calls.
To add a userdata to the whole grid or some of its rows, use the setUserData method:
//adds userdata to the row with id="row1"
mygrid.setUserData("row1","priority","high");
var userdata = mygrid.getUserData("row1","priority");//-> "high"
//adds userdata to the whole grid
mygrid.setUserData("","priority","high");
var userdata = mygrid.getUserData("","priority");//-> "high"
Related sample: Using Grid API Methods
In case of initialization from XML, you can use a special tag - <userdata></userdata>:
<rows>
<userdata name="somName1">some data</userdata> //userdata related to the whole grid
<row id="unique_rowid">
<userdata name="someName1"> some row data </userdata> //userdata related to a row
<userdata name="someName2"> some row data </userdata>
<cell>cell content</cell>
<cell><![CDATA[<font color="red">cell</font> content]]></cell>
</row>
</rows>
To add a custom attribute to a row in the grid, use the setRowAttribute method:
mygrid.setRowAttribute("row1","priority","high");
var value = mygrid.getRowAttribute("row1","priority"); //->"high"
To add a custom attribute to a cell in the grid, use the setAttribute method:
mygrid.cells("row1",0).setAttribute("priority","high");
var value = mygrid.cells("row1",0).getAttribute("priority"); //->"high"
In case of initialization from XML, you can use a special tag - <row></row>:
<rows>
<row id="unique_rowid" priority="high"> <cell some="data">cell content</cell>
</row>
</rows>
By default, custom attributes are not included into serialization and not available during dataProcessor calls.
In case of initialization from XML you can include a custom attribute into serialization as in:
mygrid.xml.row_attrs.push("priority"); //includes some row attribute into serialization
mygrid.xml.cell_attrs.push("priority"); //includes a cell attribute into serialization
Related sample: Setting custom attributes
Back to top