2015-06-15 3 views
-2

Я пишу приложение .net с mvc5 ef 6, и мне нужно создать диаграмму. Я нахожу библиотеку d3, но мне нужно передать данные sql.d3 chart SqlQuery

У меня есть круговая диаграмма d3.js со статическими данными на ней.

<script> 
      (function (d3) { 
      'use strict'; 


      var dataset = [ 
       { label: 'Abulia', count: 35 }, 
       { label: 'Betelgeuse', count: 20 }, 
       { label: 'Cantaloupe', count: 40 }, 
       { label: 'Dijkstra', count: 5 } 
      ]; 
      var width = 500; 
      var height = 200; 
      var radius = Math.min(width, height)/2; 
      var donutWidth = 75; 
      var legendRectSize = 28; 
      var legendSpacing = 4; 

      var color = d3.scale.ordinal() 
      .range(['#66B615','#3BFF5A','#77E863','#2AE87E']); 

      var svg = d3.select('#chart2') 
       .append('svg') 
       .attr('width', width) 
       .attr('height', height) 
       .append('g') 
       .attr('transform', 'translate(' + (width/2) + 
       ',' + (height/2) + ')'); 

      var arc = d3.svg.arc() 
       .outerRadius(radius); 

      var pie = d3.layout.pie() 
       .value(function (d) { return d.count; }) 
       .sort(null); 

      var path = svg.selectAll('path') 
       .data(pie(dataset)) 
       .enter() 
       .append('path') 
       .attr('d', arc) 
       .attr('fill', function (d, i) { 
        return color(d.data.label); 
       }); 

Мне нужно передать данные с db. Как мне это сделать?

ответ

1

вам нужно создать метод в контроллере для извлечения данных из sql с помощью [HttpPost] attrribute через actionResult.

Для экс:

[HttpPost] 
public ActionResult getData(params)// variables to be passed to sp 
{ 
    modelobject mo = new modelobject();//the data from your model where the sp is called; 
data d = mo.methodname(params);// method calling sp 
return Json(d , JsonRequestBehavior.AllowGet); 
} 

В вашем Js, вызовите либо яваскрипт метод Ajax для получения данных, или если вы используете вызов $ запрос угловой службы HTTP.