我在ASP.NET webform页面中定义了一个类:
namespace AdsignInt_V0._2.AdvertiserZone.ChartReports
{
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
List<string> XAxisItems = new List<string>();
XAxisItems.Add("Monday");
XAxisItems.Add("Tuesday");
XAxisItems.Add("Wednesday");
XAxisItems.Add("Thursday");
XAxisItems.Add("Friday");
XAxisItems.Add("Saturday");
XAxisItems.Add("Sunday");
SeriesItem series1 = new SeriesItem("Week 1", Color.Red);
for (int i = 1; i < 8; i++)
series1.Items.Add(i * 10);
SeriesItem series2 = new SeriesItem("Week 2", Color.Blue);
for (int i = 1; i < 8; i++)
series2.Items.Add(100 - i * 10);
List<SeriesItem> SeriesItems = new List<SeriesItem>();
SeriesItems.Add(series1);
SeriesItems.Add(series2);
makeChart(XAxisItems, SeriesItems);
}
void makeChart(List<string> XAxisItems, List<SeriesItem> SeriesItems)
{
MyChart.Appearance.FillStyle.BackgroundColor = Color.White;
MyChart.ChartTitle.Text = "Server CPU Load By Days";
MyChart.ChartTitle.Appearance.Align = ChartTitleAlign.Center;
MyChart.ChartTitle.Appearance.BackgroundColor = Color.White;
MyChart.ChartTitle.Appearance.Position = ChartTitlePosition.Top;
MyChart.Legend.Appearance.BackgroundColor = Color.White;
MyChart.Legend.Appearance.Position = ChartLegendPosition.Bottom;
MyChart.PlotArea.Appearance.FillStyle.BackgroundColor = Color.White;
{ //XAxis
MyChart.PlotArea.XAxis.AxisCrossingValue = 0;
MyChart.PlotArea.XAxis.Color = Color.Black;
MyChart.PlotArea.XAxis.MajorTickType = TickType.Outside;
MyChart.PlotArea.XAxis.MinorTickType = TickType.Outside;
MyChart.PlotArea.XAxis.Reversed = false;
MyChart.PlotArea.XAxis.LabelsAppearance.DataFormatString = "{0}";
MyChart.PlotArea.XAxis.LabelsAppearance.RotationAngle = 0;
MyChart.PlotArea.XAxis.LabelsAppearance.Skip = 0;
MyChart.PlotArea.XAxis.LabelsAppearance.Step = 1;
MyChart.PlotArea.XAxis.MajorGridLines.Color = Color.Gray;
MyChart.PlotArea.XAxis.MinorGridLines.Color = Color.Gray;
MyChart.PlotArea.XAxis.TitleAppearance.Text = "Days";
MyChart.PlotArea.XAxis.TitleAppearance.Position = AxisTitlePosition.Center;
MyChart.PlotArea.XAxis.TitleAppearance.RotationAngle = 0;
foreach (string item in XAxisItems)
MyChart.PlotArea.XAxis.Items.Add(item);
}
{ //YAxis
MyChart.PlotArea.YAxis.MinValue = 0;
MyChart.PlotArea.YAxis.MaxValue = 100;
MyChart.PlotArea.YAxis.Step = 25;
MyChart.PlotArea.YAxis.AxisCrossingValue = 0;
MyChart.PlotArea.YAxis.Color = Color.Black;
MyChart.PlotArea.YAxis.MajorTickType = TickType.Outside;
MyChart.PlotArea.YAxis.MinorTickType = TickType.Outside;
MyChart.PlotArea.YAxis.Reversed = false;
MyChart.PlotArea.YAxis.LabelsAppearance.DataFormatString = "{0}%";
MyChart.PlotArea.YAxis.LabelsAppearance.RotationAngle = 0;
MyChart.PlotArea.YAxis.LabelsAppearance.Skip = 0;
MyChart.PlotArea.YAxis.LabelsAppearance.Step = 1;
MyChart.PlotArea.YAxis.MajorGridLines.Color = Color.Gray;
MyChart.PlotArea.YAxis.MinorGridLines.Color = Color.Gray;
MyChart.PlotArea.YAxis.TitleAppearance.Text = "CPU Load";
MyChart.PlotArea.YAxis.TitleAppearance.Position = AxisTitlePosition.Center;
MyChart.PlotArea.YAxis.TitleAppearance.RotationAngle = 0;
}
foreach (SeriesItem seriesItem in SeriesItems)
{
LineSeries lineSeries = new LineSeries();
lineSeries.Name = seriesItem.name;
lineSeries.Appearance.FillStyle.BackgroundColor = seriesItem.backgroundColor;
lineSeries.LabelsAppearance.DataFormatString = seriesItem.dataFormatString;
lineSeries.LabelsAppearance.Position = seriesItem.position;
lineSeries.LineAppearance.Width = seriesItem.lineWidth;
lineSeries.MarkersAppearance.BackgroundColor = seriesItem.markerBackgroundColor;
lineSeries.MarkersAppearance.MarkersType = seriesItem.markerType;
lineSeries.MarkersAppearance.Size = seriesItem.markerSize;
lineSeries.MarkersAppearance.BorderColor = seriesItem.markerBorderColor;
lineSeries.TooltipsAppearance.BackgroundColor = seriesItem.tooltipBackgroundColor;
lineSeries.TooltipsAppearance.DataFormatString = seriesItem.tooltipDataFormatString;
foreach (decimal value in seriesItem.Items)
lineSeries.Items.Add(value);
MyChart.PlotArea.Series.Add(lineSeries);
}
}
}
public class SeriesItem
{
public string name;
public Color backgroundColor;
public string dataFormatString;
public LineAndScatterLabelsPosition position;
public int lineWidth;
public Color markerBackgroundColor;
public MarkersType markerType;
public int markerSize;
public Color markerBorderColor;
public Color tooltipBackgroundColor;
public string tooltipDataFormatString;
public List<decimal> Items;
public SeriesItem(string Name, Color color)
{
name = Name;
backgroundColor = color;
dataFormatString = "{0}%";
position = LineAndScatterLabelsPosition.Above;
lineWidth = 1;
markerBackgroundColor = Color.Yellow;
markerType = MarkersType.Circle;
markerSize = 8;
markerBorderColor = Color.Green;
tooltipBackgroundColor = Color.White;
tooltipDataFormatString = "{0}%";
Items = new List<decimal>();
}
}
}
但是当我想使用该类中的方法时,我有一个错误告诉我:
以下方法或属性之间的调用不明确: AdsignInt_V0._2.AdvertiserZone.ChartReports.SeriesItem.SeriesItem(string,System.Drawing.Color) 和
AdsignInt_V0._2.AdvertiserZone.ChartReports.SeriesItem.SeriesItem(string,System.Drawing.Color) C:\ Users \ my media \ Documents \ Visual Studio 2013 \ Projects \ AdsignInt_V0.2 \ AdsignInt_V0.2 \ AdvertiserZone \ ChartReports \ WebForm1.aspx.cs 27 34 AdsignInt_V0.2
答案 0 :(得分:1)
尝试清理解决方案和临时ASP文件,然后重建。最有可能的是,最后一个构建具有指向相同类名的程序集。
此外,SeriesItem类是用于定义RadHtmlChart系列项的旧类,因此您可能希望更改其名称以避免任何冲突。系列项目的当前类列于此处:http://www.telerik.com/help/aspnet-ajax/htmlchart-server-side-api-configure-series-items.html。
旁注 - 我不认为你需要为每个系列项目添加一个新系列,所以你可能想在系列创建之后为系列项目设置foreach循环。
答案 1 :(得分:0)
我在顶部定义de System.Drawing。
using Draw = System.Drawing;
如果我需要使用System.Drawing,我将它与Draw一起使用。
样品:
public SeriesItem(string Name, Draw.Color color)
{
name = Name;
backgroundColor = color;
dataFormatString = "{0}%";
position = LineAndScatterLabelsPosition.Above;
lineWidth = 1;
markerBackgroundColor = Draw.Color.Yellow;
markerType = MarkersType.Circle;
markerSize = 8;
markerBorderColor = Draw.Color.Green;
tooltipBackgroundColor = Draw.Color.White;
tooltipDataFormatString = "{0}%";
Items = new List<decimal>();
}