Kendo UI Treeview数据绑定到XML:它如何绑定到“id”?

时间:2013-06-11 11:49:38

标签: kendo-ui kendo-treeview

我很难理解TreeView小部件的内部工作原理。我指的是Kendo code library example,特别是Ajax加载代码段:

//Ajax binding data
public JsonResult Employees(string id)
{            
    XElement element = XElement.Load((Server.MapPath("~/App_Data/employees.xml")));
    IEnumerable<Employee> result;

    if (!string.IsNullOrEmpty(id))
    {
        //search for id and return it's children
        result = FindByID(id, element.Element("Employee")).Element("items").Elements("Employee").Select(e => ToEmployee(e));
    }
    else
    {
       //return first level nodes
       result = element.Elements("Employee").Select(e => ToEmployee(e)) ;
    }

    return Json(result, JsonRequestBehavior.AllowGet); 
} 

//Find the XML element by Id
private XElement FindByID(string id, XElement element)
{...}

//Convert XML element to Object
private Employee ToEmployee(XElement element)
{
    return new Employee()
    {
       id = int.Parse(element.Element("employeeId").Value),
       name = element.Element("name").Value,
       hasChildren = element.Element("items") != null
    };
}

这是使用的模型,它对应于实际的XML结构:

public class Employee
{
    public int id { get; set; }
    public string name { get; set; }
    public bool hasChildren { get; set; }
    public List<Employee> items { get; set; }
}

View执行以下代码:

@(Html.Kendo().TreeView()
.Name("ajaxTree")
.DataTextField("name")      
.DataSource(source =>
{
    source.Read(read =>
    {
        read.Action("Employees", "Home");
    });
})
)

困扰我的是模型需要与此示例完全相同的事实。具体而言,&#34; id&#34;和&#34; hasChildren&#34;需要以这种方式准确指定属性。例如,修改&#34; id&#34;进入&#34; Id&#34;会使此示例无效,TreeView将无法加载。有人可以帮助我吗?

  1. 如何实际完成绑定?
  2. 为什么我必须设计具有小写属性的模型? (我知道这听起来很奇怪,但它与我(团体)项目的其他部分格式化有冲突...)
  3. 有没有办法绑定所需的剑道&#34; id&#34;和&#34; hasChildren&#34;到其他属性(功能相同,名称不同)?

1 个答案:

答案 0 :(得分:0)

不确定你是否得到了问题的答案。

此链接http://demos.kendoui.com/web/treeview/remote-data.html将帮助您了解模型数据如何绑定到树视图。请点击以下链接。

  1. HierarchicalDataSource - http://docs.kendoui.com/api/framework/hierarchicaldatasource
  2. DataSource - http://docs.kendoui.com/api/framework/datasource
  3. 型号 - http://docs.kendoui.com/api/framework/model
  4. 问题#2,#3

    是的,可以按如下方式配置模型属性:

    schema: {
        model: {
            id: "EmployeeId",
            hasChildren: "HasEmployees",
            children: "EmployeeArray"
        }
    }