I was trying to create a Datatable using google.visualization.datatable API yesterday for my related post widget. It came out quite well and at the end I found that the headerRow (the title of the data table) has a font that looked like a odd man out. I decided to change the header row font, when I realized that the documentation on the API did not cover that with an example. In this blog post, I will try to explain the way you can change the header row font / style and get rid of the silver background and use your own custom format. My current header row format is as shown below:-
| google.visualization.datatable - Default Header Style |
.mystyle1 {
background-color: #FFFFFF;
color: #3366CC;
font: 13px Verdana;
font-weight: bold;
text-align: center; }
Now, the visualization.draw method needs to be modified in such a way that it takes the new style we have created and in turn reflects this in table header. We will convey this using the configuration option " cssClassNames" in draw method, but this cssClassNames accepts an Object as input. We define a Javascript variable for this as shown below
var mystyles = {headerRow: 'mystyle1'} ;
We then use this 'mystyles' variable to the draw method as shown below
visualization.draw(data,{allowHtml: true,height : 500,width: 728,cssClassNames: mystyles});
That is it..the "headerRow" style is now modified to use the style definition we created. The style of the table header gets changed as shown below
| google.visualization.datatable Header Font Style Modified |
Is it possible to specify a different image other than title-bg.gif in the header? Yes, it is. To do this, we add "background" property to the style as shown below
.mystyle {
background: url("title.jpg") repeat-x scroll left bottom #FFFFFF;
color: #FFFFFF;
font: 13px Verdana;
text-align: center;
font-weight: bold;
}
The title.jpg is a gradient image in blue color, much similar to the silver shade one. If you want to try this out, you can take the image as provided below
![]() |
| Title.Jpg Used in Table Header as Background |
When this style is used in "mystyles" variable, the "draw" method changes the header to the one as shown below:
| Data Table with Changed Background Image for Header |
<script type="text/javascript">
function drawVisualization() {
var data = new google.visualization.DataTable();
data.addColumn('string', 'Header Row');
data.addRows(2);
data.setCell(0, 0, '<font face=Verdana><a href="http://www.google.com">Sign up</a></font>');
data.setCell(1, 0, '','Row 2',{style: 'font-family:"Verdana"'});
visualization = new google.visualization.Table(document.getElementById('table'));
var mystyles = {headerRow: 'mystyle'} ;
visualization.draw(data,{allowHtml: true,height : 500,width: 728,cssClassNames: mystyles});
//visualization.draw(data,{allowHtml: true,height : 500,width: 728});
}
google.setOnLoadCallback(drawVisualization);
</script>
</head>
<body style="font-family: Arial;border: 0 none;">
<div id="table"></div>
</body>
<style type='text/css' >
.mystyle {
background: url("title.jpg") repeat-x scroll left bottom #FFFFFF;
color: #FFFFFF;
font: 13px Verdana;
text-align: center;
font-weight: bold;
}
.mystyle1 {
background-color: #3366CC;
color: #FFFFFF;
font: 13px Verdana;
font-weight: bold;
text-align: center;
} </style >
background: url("title.jpg") repeat-x scroll left bottom #FFFFFF;
color: #FFFFFF;
font: 13px Verdana;
text-align: center;
font-weight: bold;
}
.mystyle1 {
background-color: #3366CC;
color: #FFFFFF;
font: 13px Verdana;
font-weight: bold;
text-align: center;
}

No comments:
Post a Comment