To set the header for the grid, use the setHeader method:
mygrid = new dhtmlXGridObject('gridbox');
mygrid.setImagePath("./codebase/imgs/");
mygrid.setHeader("Sales,Book title,Author,Price"); mygrid.init();
Note, the header's values are treated as HTML, so you can use any HTML tags in the setHeader method:
mygrid.setHeader("<img src='book_icon.png'>,<b>Sales</b>,Book title,Author,Price");
//the image "book_icon.png" will be used as the header of the 1st column
To align the header's labels, use related CSS rules in the setHeader method:
mygrid.setHeader(
"A,B,C",
null,
["text-align:right;","text-align:left;","text-align:center"]
);
//or
mygrid.setHeader("<div style='width:100%; text-align:left;'>A</div>,B,C");
Starting from v4.1, users can enable dhtmlxMenu for setting visibility of different columns (hide/show them) right on the fly. To do this, the user just needs to call the following command:
grid.enableHeaderMenu();
The setHeader method must be called anytime you initialize the grid, dhtmlxGrid detects the number of columns depending on the values specified in this method. The only way to display the grid without the header is to hide it.
To hide the grid's header, use the setNoHeader method:
mygrid.setHeader("A,B,C"); //must be called anyway as it sets the number of cols
mygrid.setNoHeader(true); //hides the header
To add one more header line, use the attachHeader method:
mygrid = new dhtmlXGridObject('gridbox');
mygrid.setImagePath("./codebase/imgs/");
mygrid.setHeader("Sales,Book title,Author,Price"); mygrid.attachHeader("Second header,,"); mygrid.init();
Assigning a custom style to the additional headers is quite similar:
mygrid.setHeader("Sales,Book title,Author,Price");
mygrid.attachHeader(
"Second header,,",
["text-align:right;","text-align:left;","text-align:center"]
);
Related sample: Multirow header
To set the footer(or several footers) for the grid, use the attachFooter method:
There is a sibling command to attach footers (the first line and more):
mygrid = new dhtmlXGridObject('gridbox');
mygrid.setImagePath("./codebase/imgs/");
mygrid.setHeader("Sales,Book title,Author,Price"); mygrid.attachFooter("Sales,Book title,Author,Price"); mygrid.init();
The footer's values are treated as HTML
The CSS style for the footer is assigned through the 2nd parameter of the attachFooter method:
mygrid.attachFooter(
"Sales,Book title,Author,Price",
["text-align:right;","text-align:left;","text-align:center"]
);
To detach some header(footer) from the grid, use the detachHeader (detachFooter) method:
mygrid = new dhtmlXGridObject('gridbox');
mygrid.setImagePath("./codebase/imgs/");
mygrid.setHeader("Sales,Book title,Author,Price"); mygrid.attachFooter("Sales,Book title,Author,Price"); mygrid.init();
mygrid.detachFooter(0);//detaches the 1st footer(zero-based numbering)
The 1st header can't be detached
To change the header's label of some column, use the setColumnLabel method:
//sets new label for the 1st column
mygrid.setColLabel(0,"New Column Label");
//sets new label for the 2nd header the 1st column
mygrid.setColLabel(0,"New Column Label",1);
To get the header's labels, use the getColumnLabel method:
//gets the label of the 1st column
var colLabel=mygrid.getColLabel(0);
//gets the label of the 2nd header of the 1st column
var colLabel=mygrid.getColLabel(0,1);
Multi-line headers (footers) can have colspans and rowspans. There is no special API for such a task, the functionality is based on special cell values.
To set a colspan(rowspan) you need to use special keywords in the setHeader (setFooterLabel) methods instead of the text labels:
mygrid.setHeader("A,#cspan,#cspan");
mygrid.attachHeader("A1,B1,#cspan");
mygrid.attachHeader("#rspan,B2,C2");
The same cell can't be included in both rowspan and colspan at the same time
If you're initializing dhtmlxGrid from XML, the labels of the 1st header are set with the column tags.
Additional headers(footers) are specified with the afterInit/call tags:
<rows>
<head>
<column ... >A</column>
<column ... >B</column>
<column ... >C</column>
<afterInit>
<call command="attachHeader"><param>A1,B1,C1</param></call>
<call command="attachHeader"><param>A2,B2,C2</param></call>
<call command="attachFooter"><param>AF,BF,CF</param></call>
</afterInit>
</head>
...
</rows>
The same syntax is used to define colspans and rowspans (whitespaces around #rspan and #cspan values must be omitted).
dhtmlxGrid has a special support for icons in the header. Note, the expected size of icons is 18x18 pixels.
To present an icon in the header, use the following technique:
mygrid = new dhtmlXGridObject('gridbox');
mygrid.setImagePath("./codebase/imgs/");
mygrid.setHeader("Without Icon,img:[path/to/icon.gif]With Icon"); mygrid.init();
If you're using XML configuration, set an icon in the header as in:
<head>
<column width="50" type="dyn">Without Icon</column>
<column width="150" type="ed">img:[path/to/icon.gif]With Icon</column>
...
</head>
By default, dhtmlxGrid treats the header's labels as text values. To make the grid treat labels as images files' names, use the enableHeaderImages method:
mygrid = new dhtmlXGridObject('gridbox');
mygrid.setImagePath("./codebase/imgs/");
mygrid.setHeader("img_01,img_02,img_03"); mygrid.enableHeaderImages(true);
mygrid.init();
Back to top