使用 C#。传递给 mvc 控制器的具有元素和元素属性的对象列表,例如:
List<anobject> listOfAnobjects = new List<anobject>();
anobject1.date = 1/1/21 | anobject1.linename = "Line1" | anobject1.value = 100
anobject1.date = 1/2/21 | anobject1.linename = "Line1" | anobject1.value = 200
anobject1.date = 1/3/21 | anobject1.linename = "Line1" | anobject1.value = 300
anobject2.date = 1/2/21 | anobject2.linename = "Line2" | anobject2.value = 20
anobject2.date = 1/3/21 | anobject2.linename = "Line2" | anobject2.value = 50
anobject2.date = 1/4/21 | anobject2.linename = "Line2" | anobject2.value = 200
anobject2.date = 1/5/21 | anobject2.linename = "Line2" | anobject2.value = 120
在控制器中:将 listOfAnobjects 列表传递给 Google Charts
public actionResult GetData()
{
return Json(listOfAnobjects,JsonRequestBehavior.AllowGet);
}
在我的 Index.cshtml 中,我通过以下代码生成 Google 图表。 当前代码生成一行,其中包含所有 anobject .date / .value 。 如何更改以便代码为 listOfAnobjects 列表中的每个不同 .linename 生成 1 个折线图 (x,y) = (.date,.value)。谢谢!
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
google.charts.load('current',{'packages': ['corechart','table']});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var dataJson;
$.ajax({
url: '@Url.action("GetData"),dataType: "json",type: "POST",contentType: 'application/json; charset=utf-8',cache: false,data; {},success: function (dataJson) {
var arrOutside = new Array();
var heading = ["Date","Value"];
arrOutside[0] = heading;
for (var i = 0; i < dataJson.length,i++){
var arr = [dataJson[i].date,dataJson[i].value];
arrOutside[i+1] = arr;
}
var options = {
width: 900,height: 600,}
var gdata = new.google.visualization.arrayToDataTable(arrOutside);
var chart = new google.visualization.LineChart(document.getElementById('line_chart1');
chart.draw(gdata,options);
}
});
}
</script>