Как передать разные вычисленные значения в метку столбчатой диаграммы asp?

#c# #mysql #asp.net #charts

#c# #mysql #asp.net #Диаграммы

Вопрос:

У меня есть два целых значения ta и thc, и я вычисляю процентное соотношение для этих двух значений и передаю эти значения в метки диаграммы asp в каждом столбце, как показано в приведенном ниже коде.

 while (myread2.Read())
{
      while (myread.Read())
      {
           string ta1 = myread["totalapplied"].ToString();
           string thc1 = myread2["THC"].ToString();
           Int32 ta = Convert.ToInt32(ta1);
           Int32 thc = Convert.ToInt32(thc1);
           var calc = (((double)ta / (double)thc) * 100);
           string percentCalc = Convert.ToString(String.Format("{0:0.00}", calc)); // I want to pass this value for each column for each read on the loop
           lblcount.Text = myread["totalapplied"].ToString();
           this.Chart1.Series["Series1"].Points.AddXY(myread["categ"], myread["totalapplied"]);
           this.Chart1.Series["Series1"].Legend = "Leg";
           Chart1.Series["Series1"].IsValueShownAsLabel = true;
           Chart1.Series["Series1"].Label = percentCalc; //I need the calculated value here
           Chart1.Series["Series1"].ToolTip = "Shift: #VALX \nCount: #VALY";
           Chart1.Legends.Clear();
           Chart1.ChartAreas["ChartArea1"].AxisX.MajorGrid.Enabled = false;
           Chart1.ChartAreas["ChartArea1"].AxisY.MajorGrid.Enabled = false;
       }
       this.Chart1.Series["Series2"].Points.AddXY(myread2["date1"], myread2["THC"]);
       this.Chart1.Series["Series2"].Legend = "Leg";
       Chart1.Series["Series2"].IsValueShownAsLabel = true;
       Chart1.Series["Series2"].Label = "100%";
       Chart1.Series["Series2"].ToolTip = "Shift: #VALX \nCount: #VALY";
       Chart1.Legends.Clear();
       Chart1.ChartAreas["ChartArea1"].AxisX.MajorGrid.Enabled = false;
       Chart1.ChartAreas["ChartArea1"].AxisY.MajorGrid.Enabled = false;
       Chart1.ChartAreas["ChartArea1"].AxisX.Interval = 1;
       Chart1.ChartAreas["ChartArea1"].AxisX.LabelStyle.Angle = -45;
 }
 con.Close();
  

Итак, из приведенного выше кода он повторяет самое последнее значение цикла для каждого столбца диаграммы. Как я могу передать отдельные вычисления в метку? Заранее спасибо…

Ответ №1:

Я думаю, что вы хотите добавить пользовательскую метку к точкам вашей серии 1. Можете ли вы сказать мне, работает ли это?

Вместо этой строки кода:

 Chart1.Series["Series1"].Label = percentCalc;
  

Попробуйте это

 Chart1.Series["Series1"].Points[Chart1.Series["Series1"].Points.Count-1].Label = percentCalc.ToString();
  

Комментарии:

1. Отлично! У вас также есть доступ к . LabelAngle, .LabelToolTip и . Свойства LabelUrl из коллекции Series. Поэкспериментируйте и с ними!