Instead of using Google's google.setOnLoadCallback(drawChart);
event in your javascript, try using _spBodyOnLoadFunctionNames.push("drawChart");
.
My theory is that by the time Google's API has loaded, your page's DOM has not been fully built, and so there is no "chart_div" to access.
Sidenote: I would recommend using the StringBuilder class instead of all of that concatenation. It has nothing to do with your problem, but doing an AppendLine("...")
is easier than putting \n
everywhere. Feel free to ignore this if you want.