0

我是 Kendo Chart 的新手,我想在我的 MVC 项目中实现它。我正在使用剑道版本2012.3.1315.340

控制器:

public ActionResult KendoChart()
{
   return View();
}

public ActionResult GetTaskAllz()
{
  dbipathEntities1 objContext = new dbipathEntities1();
  List<mdlChart> objLst = new List<mdlChart>();
  List<tblPurchaseOrder> objLst1 = new List<tblPurchaseOrder>();
  var objMdl1 = (from c in objContext.tblPurchaseOrders select c).Take(100).OrderBy(x => x.POID).ToList();
  objLst1 = objMdl1.ToList<tblPurchaseOrder>();
  for (int i = 0; i < objLst1.Count; i++)
  {
    objLst.Add(new mdlChart { JobNo = objLst1[i].JobID, SupplierID = objLst1[i].SupplierID });
   }
   return Json(objLst1, JsonRequestBehavior.AllowGet);
}

模型:

public class mdlChart
{
    public Nullable<int> JobNo { get; set; }
    public Nullable<int> SupplierID { get; set; }
}

CSHTML:

<link rel="stylesheet" href="@Url.Content("~/Kendo/kendo.common.min.css")" />

<link rel="stylesheet" href="@Url.Content("~/Kendo/kendo.rtl.min.css")" />
<link rel="stylesheet" href="@Url.Content("~/Kendo/kendo.default.min.css")" />
<link rel="stylesheet" href="@Url.Content("~/Kendo/examples-offline.css")" />
 <script src="../../Kendo/Jquery-1.8.3.min.js" type="text/javascript"></script>
<script src="@Url.Content("~/Kendo/kendo.web.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Kendo/kendo.aspnetmvc.min.js")" type="text/javascript">   </script>
<script src="@Url.Content("~/Kendo/console.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Kendo/prettify.min.js")" type="text/javascript"></script>
<script src="../../Kendo/kendo.culture.en-GB.min.js" type="text/javascript"></script>
<script type="text/javascript">
//set current to the "en-GB" culture script
kendo.culture("en-GB");
</script>
@using Kendo.Mvc.UI
@(Html.Kendo().Chart<MVCProject.Models.mdlChart>()
.Name("chart")
.Title("Pop In Accounts")
.Legend(legend => legend
.Position(ChartLegendPosition.Top)
)
.DataSource(ds => ds.Read(read => read.Action("GetTaskAllz", "Kendo")))
.Series(series =>
{
    series.Column(model => model.JobNo).Name("Val2");
})
.CategoryAxis(axis => axis
    .Categories(model => model.SupplierID)
    .Labels(labels => labels.Rotation(-90))
 )
 )

但有了这个我没有得到Chart。它给出了一个 Javascript 错误:

Microsoft JScript runtime error: Object doesn't support this property or method

Javascript自动生成的代码出现上述错误:

 jQuery(
function () {
    debugger;
    jQuery("#chart").kendoChart(
        { "title": { "text": "Pop In Accounts" },
        "legend": { "position": "top" },
       "series": [{ "name": "Val2", "type": "column", "field": "JobNo"}],
      "categoryAxis": [{ "labels": { "rotation": -90 }, "field": "SupplierID"}],
      "dataSource": { "transport": { "prefix": "", "read": { "url": "/Kendo/GetTaskAllz", "type": "POST"} },
        "type": "aspnetmvc-ajax",
        "schema":
       { "model":
       { "fields":
        { "JobNo":
         { "type": "number", "defaultValue": null },
        "SupplierID": { "type": "number", "defaultValue": null }
        }
      }
    }
    }
});
});
4

2 回答 2

2

你应该包括“kendo.all.min.js”。“kendo.web.min.js”不包括 Kendo UI DataViz 小部件。更多信息可以在文档中找到。

于 2013-04-12T12:55:48.957 回答
0

解决了 !!只需用以下脚本替换所有上述脚本。

     <script src="../../Kendo/Jquery-1.8.3.min.js" type="text/javascript"></script>
     <link href="../../Kendo/kendo.dataviz.min.css" rel="stylesheet" type="text/css" />
     <script src="../../Kendo/kendo.dataviz.min.js" type="text/javascript"></script>
于 2013-04-12T14:20:23.157 回答