2013-01-18 29 views
0

我試圖用以下信息顯示Kendo的dataviz餅圖。Kendo的dataviz餅圖 - 顯示遠程數據

我將'結果'從控制器傳回我的視圖。

results is what I'm passing back to my view.

我的視圖包含餅圖:

@(Html.Kendo().Chart<PropertyViewModel>() 
     .Name("chart") 
     .Title("Properties") 
     .Legend(legend => legend 
      .Position(ChartLegendPosition.Top) 
     ) 
     .DataSource(ds => ds.Read(read => read.Action("GetPropertiesChart", "Home"))) 
     .Series(series => { 
      series.Pie(model => model.Address.State, model => model.Address.State.Count().ToString()); 
     }) 
     .Tooltip(tooltip => tooltip 
      .Visible(true) 
      .Format("{0:N0}") 
     ) 
    ) 

我什麼也沒得到,但一個空白區域,我的網頁上,其中餅圖應該的。

控制器代碼:

public ActionResult GetPropChart() 
    { 
     var allProps = PService.GetAll(); 

     var props = allProps.Cast<PropViewModel>().ToList(); 


     var results = props 
       .GroupBy(item => item.Address.State) 
       .Select(g => new 
       { 
        State = g.Key, 
        Count = g.Select(l => l.Address.State).Count() 
       }); 

     return Json(results); 
    } 
+0

爲數據提供服務的控制器操作方法如何?還有在控制檯中的任何JavaScript錯誤?你使用什麼瀏覽器?您是否嘗試將該集合傳遞給BindTo方法並查看它是否可用? –

+0

我已經添加了上面的控制器代碼。 我沒有得到JavaScript錯誤,我正在使用Chrome。我沒有嘗試將集合傳遞給BindTo方法,但我會給出一個鏡頭。 – Mithrilhall

回答

0

你收益的模型如下:

.Select(g => new 
     { 
      State = g.Key, 
      Count = g.Select(l => l.Address.State).Count() 
     } 

但是你的系列定義是不同的(沒有ADRESS屬性)

series.Pie(model => model.Address.State) 

而且綁定到方法(如model.Address.State.Count()。ToString())不受支持 - 創建正則p反而擁有價值的roperty。