【发布时间】:2021-11-10 08:44:43
【问题描述】:
我有一个谷歌图表,当有数据时它按预期工作
但是当没有数据时,它会显示如下消息
Data column(s) for axis #0 cannot be of type string
这是我正在尝试的代码
function drawBarChar() {
show('loading5', true);
var data = JSON.stringify({
'GraphId': 1,
'startDt': $("#from-date").val(),
'endDt': $("#to-date").val()
});
$.ajax({
type: "POST",
url: url,
data: data,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (r) {
show('loading5', false);
var data = google.visualization.arrayToDataTable(r);
var view = new google.visualization.DataView(data);
view.setColumns([0, 1,
{
calc: "stringify",
sourceColumn: 1,
type: "string",
role: "annotation"
}
]);
var options = {
width: 500,
height: 400,
colors: ["#6cc49c"],
bar: { groupWidth: "65%" },
legend: { position: "none" }
};
var chart = new google.visualization.BarChart($("#vesselGraph")[0]);
chart.draw(data, options);
},
failure: function (r) {
alert(r.d);
},
error: function (r) {
alert(r.d);
}
});
}
public JsonResult LoadGraph(int GraphId, DateTime? startDt = null, DateTime? endDt = null)
{
List<object> chartData = new List<object>
{
new object[]
{
"Name", "Count"
}
};
DataTable table = db.GetAllFromDb("up_DashboardList", "@dashBoardId", GraphId,
"@startDate", startDt.Value.ToString("yyyy-MM-dd"), "@endDate", endDt.Value.ToString("yyyy-MM-dd")); // when the table has no rows it is displaying that error message
foreach (DataRow row in table.Rows)
{
chartData.Add(new object[]
{
row["TypeName"], row["DataCount"]
});
}
return Json(chartData);
}
@whitehat 建议后
【问题讨论】:
标签: jquery asp.net-mvc-4 charts google-visualization