【发布时间】:2017-02-18 19:40:32
【问题描述】:
第一阶段:我已经绑定了数据源
private DataTable GetData()
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionStringName"].ConnectionString);
DataSet dsData = new DataSet();
try
{
string sqlString = "select top 5\n" +
" b.name, COUNT(codAmount) as ca\n" +
" from consignment as c, Branches as b,\n" +
" CODConsignmentDetail_New as cn\n" +
" where c.destination = b.BranchCode\n" +
" and c.consignmentNumber = cn.consignmentNumber\n" +
" and c.consignerAccountNo = '" + Session["AccountNo"].ToString() + "'\n" +
" group by b.name\n" +
" order by ca desc";
SqlCommand SQLCmd = new SqlCommand(sqlString, con);
SQLCmd.CommandType = CommandType.Text;
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = SQLCmd;
DataTable dt = new DataTable();
da.Fill(dt);
con.Close();
return dt;
}
catch
{
throw;
}
}
然后我创建了条形图,但它只为每一列使用一种颜色,即蓝色。
我试图通过数组发送颜色来附加颜色,但它不起作用。
private void BindChart1()
{
StringBuilder str = new StringBuilder();
DataTable dt = new DataTable();
try
{
dt = GetData();
str.Append(@"<script type=*text/javascript*> google.load( *visualization*, *1*, {packages:[*corechart*]});
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = new google.visualization.DataTable();
data.addColumn('string', 'Name');
data.addColumn('number', 'Consignment Amount');
data.addRows(" + dt.Rows.Count + ");");
string[] colours={ "green","blue","yellow","brown","red"};
for (int i = 0; i <= dt.Rows.Count - 1; i++)
{
str.Append("data.setValue( " + i + "," + 0 + "," + "'" + dt.Rows[i]["name"].ToString() + "');");
str.Append("data.setValue(" + i + "," + 1 + "," + dt.Rows[i]["ca"].ToString() + ") ;");
//str.Append(" chart.draw(colors:['"+colours[i].ToString()+"'],");
}
str.Append(" var chart = new google.visualization.ColumnChart(document.getElementById('chart_div'));");
str.Append(" chart.draw(data, {width: 550, height: 300, title: 'COD amount amoungst Cities',");
str.Append("hAxis: {title: 'Cities', titleTextStyle: {color: 'green'}}");
str.Append("}); }");
str.Append("</script>");
lt.Text = str.ToString().Replace('*', '"');
lt.Visible = true;
}
catch
{ }
}
我也试过像这样在下面添加颜色功能
str.Append(" chart.draw(data, {width: 550, height: 300, title: 'COD amount amongst Cities',color:['red','blue','yellow','green','black',]");
但它只使用每行的第一种颜色,例如每行都会有红色。
【问题讨论】:
标签: c# asp.net google-visualization