2012-08-23 10 views
5

tôi đang cố gắng một phương pháp để ràng buộc dữ liệu Biểu đồ hình trònLàm thế nào để sử dụng dotnet highcharts dll để hiển thị HighCharts trong MVC3?

Public ActionResult Charts 
    { 
     Highcharts chart = new Highcharts("chart") 
     .InitChart(new Chart { PlotShadow = false }) 
     .SetTitle(new Title { Text = "Browser market shares at a specific website, 2010" }) 
     .SetTooltip(new Tooltip { Formatter = "function() { return '<b>'+ this.point.name +'</b>: '+ this.percentage +' %'; }" }) 
     .SetPlotOptions(new PlotOptions 
     { 
      Pie = new PlotOptionsPie 
      { 
       AllowPointSelect = true, 
       Cursor = Cursors.Pointer, 
       DataLabels = new PlotOptionsPieDataLabels 
       { 
        Color = ColorTranslator.FromHtml("#000000"), 
        ConnectorColor = ColorTranslator.FromHtml("#000000"), 
        Formatter = "function() { return '<b>'+ this.point.name +'</b>: '+ this.percentage +' %'; }" 
       } 
      } 
     }) 
     .SetSeries(new Series 
     { 
      Type = ChartTypes.Pie, 
      Name = "Browser share", 
      Data = new Data(new object[] 
            { 
             new object[] { "Firefox", 45.0 }, 
             new object[] { "IE", 26.8 }, 
             new DotNet.Highcharts.Options.Point 
             { 
              Name = "Chrome", 
              Y = 12.8, 
              Sliced = true, 
              Selected = true 
             }, 
             new object[] { "Safari", 8.5 }, 
             new object[] { "Opera", 6.2 }, 
             new object[] { "Others", 0.7 } 
            }) 
          }); 
     } 
    } 

    public JsonResult GetData() 
    { 
     int Param1; 
     Param1 = 1;  
     var reports = db.ExecuteStoreQuery<ResourceReports>("ResourceReports @EmployeeID", new SqlParameter("@EmployeeID", Param1)).ToList(); 
     return Json(reports, JsonRequestBehavior.AllowGet); 
    } 

tôi muốn thay thế

.SetSeries(new Series 
    { 
     Type = ChartTypes.Pie, 
     Name = "Browser share", 
     Data = new Data(new object[] 
            { 
             new object[] { "Firefox", 45.0 }, 
             new object[] { "IE", 26.8 }, 
             new DotNet.Highcharts.Options.Point 
             { 
              Name = "Chrome", 
              Y = 12.8, 
              Sliced = true, 
              Selected = true 
             }, 
             new object[] { "Safari", 8.5 }, 
             new object[] { "Opera", 6.2 }, 
             new object[] { "Others", 0.7 } 
            }) 
     }); 
    } 

với GetData() làm thế nào tôi có thể làm được điều này, các dữ liệu trong .SetSeries nên dữ liệu trả về của tôi của tôi trong GetData method

Trả lời

2

Dường như bạn đang sử dụng Dotnet.Highcharts. Bạn có thể tạo danh sách Series và danh sách Point.

List<Series> mySeries = new List<Series>(); 
List<Point> myPoints = new List<Point>(); 

tôi sẽ lặp qua mỗi loạt bạn cần để tạo ra và tạo ra các dữ liệu điểm như vậy:

myPoints.Add(new Point { 
    X = (detailRec.RecordTime - new DateTime(1970, 1, 1, 0, 0, 0)).TotalMilliseconds, 
    Y = detailRec.TotalCount 
}); 

Sau đó, bạn có thể tạo ra hàng loạt bản thân bằng cách sử dụng danh sách các điểm cho dữ liệu của nó như sau:

mySeries.Add(new Series{ 
    Name = distinctDistrict.Name, 
    Data = new Data(myPoints.ToArray()) 
}); 

sau đó, để thiết lập series bạn có thể sử dụng câu lệnh sau:

.SetSeries(mySeries.Select(s => new Series { 
    Name = s.Name, 
    Data = s.Data 
}).ToArray()) 

Nếu bạn sử dụng trình duyệt đối tượng trong Visual Studio, bạn có thể xem các thuộc tính và phương pháp khác của lớp học SeriesPoint. Để sử dụng mã trên, bạn sẽ phải bao gồm những điều khoản sử dụng sau đây:

using DotNet.Highcharts; 
using DotNet.Highcharts.Enums; 
using DotNet.Highcharts.Helpers; 
using DotNet.Highcharts.Options; 
using Point = DotNet.Highcharts.Options.Point; 
+0

@Tommmy Johnson ..... câu hỏi của tôi đã được .SetSeries nên được dữ liệu trả về của tôi trong phương pháp GetData – SoftwareNerd

+3

Bạn có thể không quay trở lại một ' SetSeries' vì đó là một phương thức để thiết lập chuỗi. Tuy nhiên, bạn có thể trả về một đối tượng 'Series'. Trong ví dụ trên, bạn sẽ trả về 'mySeries'. Sau đó, sử dụng phương thức đó trong phương thức 'SetSeries' để thêm chuỗi của bạn vào biểu đồ. –