用webchart 做了一个柱状图 ,结果纵坐标没有值 ,不知是怎么回事
前台
<form id="form1" runat="server">
<div>
</div>
<Web:ChartControl ID="ChartControl1" runat="server" BorderStyle="Outset"
BorderWidth="5px">
<YAxisFont StringFormat="Far,Near,Character,LineLimit" Text="errer" />
<XTitle StringFormat="Center,Near,Character,LineLimit" Text="erererer" />
<ChartTitle StringFormat="Center,Near,Character,LineLimit" />
<XAxisFont StringFormat="Center,Near,Character,LineLimit" />
<Background Color="LightSteelBlue" />
<YTitle StringFormat="Center,Near,Character,LineLimit" />
</Web:ChartControl>
<asp:Button ID="Button1" runat="server" onclick="Button1_Click"
Text="Button" />
<asp:Button ID="Button2" runat="server" onclick="Button2_Click"
Text="Button" />
</form>
后台
private void button1_click()
{
//获取一个DataTable,具体函数略
DataTable dt = new DataTable();
if (dt != null)
{
int count = 5;
int count1 = 120;
if (count > 0)
//遍历DataTable为每条记录生成一个柱状
for (int i = 0; i < count; i++)
{
//创建对象
ColumnChart mychart = new ColumnChart();
//设置柱子宽度
mychart.MaxColumnWidth = 48;
//颜色
mychart.Fill.Color = System.Drawing.Color.Azure;
//在柱子上显示数量
mychart.DataLabels.Visible = true;
//数量的字体
mychart.DataLabels.Font = new System.Drawing.Font("Verdana", 14);
//添加
mychart.Data.Add(new ChartPoint(i.ToString(), float.Parse(count1.ToString())));
//备注
mychart.Legend = "fdfdf" + count;
this.ChartControl1.Charts.Add(mychart);
count1 += 80;
}
//辅助设置
//背景色
ChartControl1.Background.Color = System.Drawing.Color.FromArgb(165, 0, 16);
ChartControl1.YAxisFont.ForeColor = System.Drawing.Color.FromArgb(165, 0, 16);
ChartControl1.XAxisFont.ForeColor = System.Drawing.Color.FromArgb(165, 0, 16);
//内部线条
ChartControl1.Border.Color = System.Drawing.Color.FromArgb(200, 200, 200);
//边框样式
ChartControl1.BorderStyle = BorderStyle.None;
//y最大值
double max = double.Parse((count + 300).ToString());
//递增值
int intv = 2; //数量小于16的情况
if (max < 16)
{
max = 16;
}
//大于16的情况
else
{
intv = int.Parse(Math.Ceiling(max / 8).ToString());
max += intv;
}
//设置Y轴终点值
ChartControl1.YCustomEnd = int.Parse(max.ToString());
//y递增值
ChartControl1.YValuesInterval = intv;
//生成
this.ChartControl1.RedrawChart();
}
//}
}
前台
<form id="form1" runat="server">
<div>
</div>
<Web:ChartControl ID="ChartControl1" runat="server" BorderStyle="Outset"
BorderWidth="5px">
<YAxisFont StringFormat="Far,Near,Character,LineLimit" Text="errer" />
<XTitle StringFormat="Center,Near,Character,LineLimit" Text="erererer" />
<ChartTitle StringFormat="Center,Near,Character,LineLimit" />
<XAxisFont StringFormat="Center,Near,Character,LineLimit" />
<Background Color="LightSteelBlue" />
<YTitle StringFormat="Center,Near,Character,LineLimit" />
</Web:ChartControl>
<asp:Button ID="Button1" runat="server" onclick="Button1_Click"
Text="Button" />
<asp:Button ID="Button2" runat="server" onclick="Button2_Click"
Text="Button" />
</form>
后台
private void button1_click()
{
//获取一个DataTable,具体函数略
DataTable dt = new DataTable();
if (dt != null)
{
int count = 5;
int count1 = 120;
if (count > 0)
//遍历DataTable为每条记录生成一个柱状
for (int i = 0; i < count; i++)
{
//创建对象
ColumnChart mychart = new ColumnChart();
//设置柱子宽度
mychart.MaxColumnWidth = 48;
//颜色
mychart.Fill.Color = System.Drawing.Color.Azure;
//在柱子上显示数量
mychart.DataLabels.Visible = true;
//数量的字体
mychart.DataLabels.Font = new System.Drawing.Font("Verdana", 14);
//添加
mychart.Data.Add(new ChartPoint(i.ToString(), float.Parse(count1.ToString())));
//备注
mychart.Legend = "fdfdf" + count;
this.ChartControl1.Charts.Add(mychart);
count1 += 80;
}
//辅助设置
//背景色
ChartControl1.Background.Color = System.Drawing.Color.FromArgb(165, 0, 16);
ChartControl1.YAxisFont.ForeColor = System.Drawing.Color.FromArgb(165, 0, 16);
ChartControl1.XAxisFont.ForeColor = System.Drawing.Color.FromArgb(165, 0, 16);
//内部线条
ChartControl1.Border.Color = System.Drawing.Color.FromArgb(200, 200, 200);
//边框样式
ChartControl1.BorderStyle = BorderStyle.None;
//y最大值
double max = double.Parse((count + 300).ToString());
//递增值
int intv = 2; //数量小于16的情况
if (max < 16)
{
max = 16;
}
//大于16的情况
else
{
intv = int.Parse(Math.Ceiling(max / 8).ToString());
max += intv;
}
//设置Y轴终点值
ChartControl1.YCustomEnd = int.Parse(max.ToString());
//y递增值
ChartControl1.YValuesInterval = intv;
//生成
this.ChartControl1.RedrawChart();
}
//}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货