2013-12-21 5 views
0

Я попытался отобразить диаграмму для данных базы данных, но у меня проблемы. Я пробовал использовать json для высоких чартов, но он не работает. Может ли кто-нибудь объяснить мне, как показать ось в качестве даты и вызвать это на странице просмотра?Показать высокие диаграммы для данных базы данных

public List<CustomerAccount> ChartData(long customerID) 
{ 
    List<CustomerAccount> chart = new List<CustomerAccount>(); 

    List<CustomerAccount> points = new CustomerAccountDBMgr().ChartAccount(customerID).FindAll(e => e.AccountName != "Others"); 
    if (null == points || points.Count == 0) 
     return null; 

    var val = (from item in points select new { CreatedAt = item.CreatedAt, OpeningBalance = item.OpeningBalance }).ToList(); 

    foreach (var data in val) 
    { 
     CustomerAccount objCustomer = new CustomerAccount() 
     { 
      CreatedAt = data.CreatedAt, 
      OpeningBalance = data.OpeningBalance 
     }; 
     chart.Add(objCustomer); 
    } 
    return chart; 
} 

Модель

public class Chart1 
{ 
    public DateTime CreatedAt { get; set; } 

    public Double? OpeningBalance { get; set; } 

    public List<CustomerAccount> ChartData() 
    { 
     PersonalizeBL business=new PersonalizeBL(); 
     var CustomerID = PERFICSSession.GetCustomerID(); 
     List<CustomerAccount>point=business.ChartData(CustomerID); 
     return point; 
    } 
} 

Контроллер

public ActionResult Chart1() 
{ 
    if (!PERFICSSession.IsValidSession()) 
     return View("Login"); 

    Chart1 model = new Chart1(); 

    Highcharts chart = new Highcharts("chart") 
    .InitChart(new Chart { DefaultSeriesType = ChartTypes.Line }) 
    .SetTitle(new Title { Text = "Database Data" }) 
    .SetXAxis(new XAxis { Type = AxisTypes.Datetime }) 
    .SetYAxis(new[] 
    { 
     new YAxis 
     { 
      Title = new YAxisTitle { Text = "Amount" }, 
      GridLineWidth = 1 
     } 
    }) 
    .SetSeries(new[] 
    { 
     new Series 
     { 
      Name = "OpeningBalance", 
      Data = new Data((model.ChartData()).Select(x=>new points{X=DotNet.Highcharts.Helpers.Tools.GetTotalMilliseconds(x.CreatedAt),Y=x.OpeningBalance}).ToArray()) 
     } 
    }); 

    return View("Chart1"); 
} 
+0

[Эта тема] (http://dotnethighcharts.codeplex.com/discussions/454622) может помочь. –

+0

Спасибо Mr.pawel, но я не могу перейти с высокой диаграммы с контроллера для просмотра – NandaIN

ответ

0

Наконец я нашел answere для этого вопроса. я бы посмотрел, какой объект я создал из высоких диаграмм. я ошибочно вернул имя страницы просмотра.

public ActionResult Chart1() 
     { 
      chartModel model = new chartModel(); 
      var data = model.chartPlots(Session); 

      Highcharts chart = new Highcharts("chart") 
      .InitChart(new Chart { DefaultSeriesType = ChartTypes.Line }) 
      .SetTitle(new Title { Text = "Database Data" }) 
      .SetXAxis(new XAxis { Type = AxisTypes.Datetime }) 
      .SetYAxis(new[] 
         { 
          new YAxis 
          { 
           Title = new YAxisTitle { Text = "Amount" }, 
           GridLineWidth = 1 
          } 
      }) 
      .SetSeries(new[] 
         { 
          new Series 
          { 
           Name = "OpeningBalance", 
           Data = new Data(data.Select(x=>new points{X=DotNet.Highcharts.Helpers.Tools.GetTotalMilliseconds(x.CreatedAt),Y=x.OpeningBalance}).ToArray()) 
          } 
         }); 

      return View(chart); 
     } 

return View(chart); 
} 
Смежные вопросы