2017-07-12 43 views
0

有谁知道如何在ASP.NET MVC中设置Kendo Treemap的数据? 我有这样(C#列表)的列表:ASP.NET MVC Kendo UI树形图 - 数据?

Item | Count 
------------------ 
Item 1 | 4 
Item 2 | 7 
Item 3 | 2 
Item 4 | 9 

这里是CSHTML部分组成演示现场(http://demos.telerik.com/aspnet-mvc/treemap):

@(Html.Kendo().TreeMap() 
     .Name("treeMap") 
     .DataSource(dataSource => dataSource 
      .Read(read => read 
       .Action("_PopulationUSA", "TreeMap") 
     ) 
      .Model(m => m.Children("Items")) 
    ) 
     .ValueField("Value") 
     .TextField("Name") 
     .HtmlAttributes(new { style = "height:600px; font-size: 12px;" }) 
) 

我在哪里可以设置的值?

在此先感谢

回答

0

这是一个很好的问题。该演示没有显示用于填充数据的控制器方法。我敢打赌,它使用HierarchicalDataSource,它支持任何自定义的名称/值类与自引用集合属性。我认为您需要下载演示以了解演示中的控制器在做什么,但是,我会尽全力为您提供帮助。服务器绑定实际上很简单,只要你知道签名。在这里,我假定Items属性是父级和子级之间的递归关系。在这种情况下,国家 - 城市。

有一个jQuery示例使用HierarchicalDataSourcehere,但是,您不需要使用该方法。

如果您的数据不是分层的,您可以发送一个简单的名称/值对列表,并在您的TreeMap UI配置中删除Model属性。

的型号:

public class MyModel 
{ 
    public string Name{ get; set; } 
    public int Value{ get; set; } 
    List<MyModel> Items{get;set;} 
} 

在控制器方法:

public class MyController : Controller 
{ 
    [OutputCache(NoStore = true, Duration = 0)] 
    public ActionResult GetMyTreeMapData(int someID, [DataSourceRequest] DataSourceRequest request) 
    { 
     List<MyModel> items = new List<MyModel>(); 
     items=SomeMethodToRecursivelyFillYourParentAndChildren(); 
     return Json(items.ToDataSourceResult(request), JsonRequestBehavior.AllowGet); 
    } 
} 

的UI绑定:

@(Html.Kendo().TreeMap() 
     .Name("treeMap") 
     .DataSource(dataSource => dataSource 
      .Read(read => read 
       .Action("GetMyTreeMapData", "MyController") 
     ) 
      .Model(m => m.Children("Items")) 
    ) 
     .ValueField("Value") 
     .TextField("Name") 
     .HtmlAttributes(new { style = "height:600px; font-size: 12px;" }) 
) 
+0

这是我需要的 - 非常感谢! – stefanneumeister