2015-05-05 4 views
0

Я хочу связать управление диаграммой диаграммы asp.net с некоторыми значениями. Данный ниже код содержит некоторые переменные со значениями. Я хочу, чтобы показать эти значения в диаграмме, как указано ниже:Как связать диаграмму 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:

enter image description here

Текущий Out Помещенный:

enter image description here

Ожидаемая Диаграмма:

enter image description here

Сейчас я получаю закачанный процент в моем графике. Мне также нужно показать пропущенный процент. Помогите найти правильное решение.

+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 шаг дважды и просто жестко закодировать значения в: значение точки загружается%, ось текст быть 'загружен/пропущенных.

Это только один из способов приблизиться к проблеме, вероятно, будут гораздо лучшие решения.

Смежные вопросы