我想用一些值绑定asp.net条形图控件。鉴于以下代码包含一些带有值的变量。我想在图表中显示这些值,如下所示:
代码:
protected void btnSubmit_Click(object sender, EventArgs e)
{
int cnt = Convert.ToInt32(txtCount.Text);
DateTime start = Convert.ToDateTime(txtStart.Text);
DateTime end = Convert.ToDateTime(txtEnd.Text);
var date1 = start.ToShortDateString();
var date2 = end.ToShortDateString();
TimeSpan datedifference = end.Subtract(start);
int dateCount = datedifference.Days;
float maxUpload = dateCount * 288;
float remainingUpload = maxUpload - cnt;
float averageUpload = remainingUpload / (dateCount * 288) * 100;
float missdUpload = 100 - averageUpload;
string siteid = ddlSiteID.SelectedValue;
lblTotalDays.Text = Convert.ToString(dateCount);
lblTotaldays2.Text = Convert.ToString(dateCount);
lblTotaldays3.Text = Convert.ToString(dateCount);
lblTotaldays4.Text = Convert.ToString(dateCount);
lblMaximum.Text = Convert.ToString(maxUpload);
lblUploaded.Text = Convert.ToString(remainingUpload);
lblMissed.Text = Convert.ToString(cnt);
lblPercentage.Text = Convert.ToString(averageUpload);
lblSiteid.Text = Convert.ToString(ddlSiteID.SelectedValue);
lblMissdPer.Text = Convert.ToString(missdUpload);
lblStart.Text = Convert.ToString(date1);
lblEnd.Text = Convert.ToString(date2);
chartBind();
}
private void chartBind()
{
Series ser = Chart2.Series["Series1"];
ser.Points.AddXY(lblTotalDays.Text, lblPercentage.Text);
}
.aspx的:
当前输出:
预期图表:
现在我的图表上传了百分比。我还需要显示错过的百分比。帮我找一个合适的解决方案。
答案 0 :(得分:2)
您的问题是您只生成一个系列点:
private void chartBind()
{
Series ser = Chart2.Series["Series1"];
ser.Points.AddXY(lblTotalDays.Text, lblPercentage.Text);
}
您需要为要绘制的每个点添加一个新点,但是有很多方法。
我个人的方法是通过绘制点来生成系列:
首先我创建了点类:
public class ChartPoint
{
public Double PointValue { get; set; }
public String AxisXText { get; set; }
}
然后可以将其实例化为列表:
public static List<ChartPoint> MethodName()
{
List<ChartPoint> points = new List<ChartPoint>();
//Get Your Measured Variables, in a list so you can loop through
points.Add(new ChartPoint
{
PointValue = measured variable,
AxisXText = "Text you want to display"
});
return points;
}
然后可以将此点列表绑定到图表作为数据源;即。
chrtWeeklyAverage.DataSource = ChartHelper.RenderWeeklyAverageChart(myclass, start, end);
在你的情况下,可能最好两次执行points.add步骤,只需对以下内容进行硬编码:上传的点值为%,轴上的文字被上传/错过&#39;。
这只是解决问题的唯一方法,可能会有更好的解决方案。