Hi,
I tried to create a pie chart. I did my own filtering from controller. So far I am not having any script errors but my chart is not displaying at all. When I put a break point on script I can see the data is coming correctly as array. Couldn't figure out why it is not displaying.
So far my data response is as follow;
{"Data":[{"AisStateType":"Under Way Using Engine","TotalDistance":9806.0141499469737,"DistancePercentage":100.0,"TotalTime":1536.0666666666666,"TimePercentage":100.0,"Id":1,"Form":null,"CustomProperties":{}},{"AisStateType":"At Anchor","TotalDistance":0.0,"DistancePercentage":0.0,"TotalTime":0.0,"TimePercentage":0.0,"Id":2,"Form":null,"CustomProperties":{}},{"AisStateType":"Not Under Command","TotalDistance":0.0,"DistancePercentage":0.0,"TotalTime":0.0,"TimePercentage":0.0,"Id":3,"Form":null,"CustomProperties":{}},{"AisStateType":"Restricted Maneuverability","TotalDistance":0.0,"DistancePercentage":0.0,"TotalTime":0.0,"TimePercentage":0.0,"Id":4,"Form":null,"CustomProperties":{}},{"AisStateType":"Constrained by Her Draught","TotalDistance":0.0,"DistancePercentage":0.0,"TotalTime":0.0,"TimePercentage":0.0,"Id":5,"Form":null,"CustomProperties":{}},{"AisStateType":"Moored","TotalDistance":0.0,"DistancePercentage":0.0,"TotalTime":0.0,"TimePercentage":0.0,"Id":6,"Form":null,"CustomProperties":{}},{"AisStateType":"Aground","TotalDistance":0.0,"DistancePercentage":0.0,"TotalTime":0.0,"TimePercentage":0.0,"Id":7,"Form":null,"CustomProperties":{}},{"AisStateType":"Engaged in Fishing","TotalDistance":0.0,"DistancePercentage":0.0,"TotalTime":0.0,"TimePercentage":0.0,"Id":8,"Form":null,"CustomProperties":{}},{"AisStateType":"Under Way Sailing","TotalDistance":0.0,"DistancePercentage":0.0,"TotalTime":0.0,"TimePercentage":0.0,"Id":9,"Form":null,"CustomProperties":{}},{"AisStateType":"Reserved for future amendment of navigational status for ships carrying DG, HS, or MP, or IMO hazard or pollutant category C","TotalDistance":0.0,"DistancePercentage":0.0,"TotalTime":0.0,"TimePercentage":0.0,"Id":10,"Form":null,"CustomProperties":{}}],"Total":10,"ExtraData":null,"Errors":null,"Form":null,"CustomProperties":{}}
and my cshtml is;
<div id="piechart"></div> <script> function createChart() { $("#piechart").kendoChart({ dataSource: { type: "json", transport: { read: { url: "@Html.Raw(Url.Action("AisReportList", "AisTrackingAdmin"))", type: "POST", dataType: "json", data: additionalData } }, schema: { data: function (response) { return response.Data; // twitter's response is { "statuses": [ /* results */ ] } } }, requestEnd: function (e) { if (e.type == "update") { this.read(); } }, error: function (e) { display_kendoui_chart_error(e); // Cancel the changes this.cancelChanges(); } }, title: { position: "bottom", text: "Ais Data Report for @Model.ShipName, @Model.StartDate - @Model.EndDate" }, legend: { visible: false }, chartArea: { background: "" }, seriesDefaults: { labels: { visible: true, background: "transparent", template: "#= AisStateType #: \n #= DistancePercentage#%" } }, series: [{ type: "pie", startAngle: 150, field: "AisStateType", categoryField: "DistancePercentage" }], tooltip: { visible: true, format: "{0}%" } }); } $(document).ready(createChart); $(document).bind("kendo:skinChange", createChart); </script> </div><script> $(document).ready(function () { //search button $('#search-aisdata').click(function () { //search $("#piechart").data("kendoChart").dataSource.read(); $("#piechart").data("kendoChart").redraw(); return false; }); $("#@Html.IdFor(model => model.AisReportSearchModel.SearchDestination)").keydown(function (event) { if (event.keyCode === 13) { $("#search-aisdata").click(); return false; } }); }); function additionalData() { var data = { ShipId: $("#@Html.IdFor(model => model.AisReportSearchModel.ShipId) option:selected").val(), SearchDestination: $('#@Html.IdFor(model => model.AisReportSearchModel.SearchDestination)').val(), SearchStartDate: $('#@Html.IdFor(model => model.AisReportSearchModel.SearchStartDate)').val(), SearchEndDate: $('#@Html.IdFor(model => model.AisReportSearchModel.SearchEndDate)').val() }; addAntiForgeryToken(data); return data; }</script>