转自:http://www.evget.com/article/2013/8/27/19479.html

概述:本文教你用JSON轻松实现Kendo UI treeview 序列化的方法,将大大提升你的开发效率。

Treeview是界面设计中经常要用到的控件,那你是否想过将界面开发工具 Kendo UI 中的treeview序列化呢?将它存储之后就可以随时加载调用,可以大大提升你的开发效率。本文将为你展示如何用一段jQuery代码轻松将 treeview 序列化。

注:Kendo UI Telerik 推出的基于jQuery HTML5UI开发框架,提供数据可视化和服务器封装解决方案,开发面向桌面、移动设备的应用程序,以其优良的性能深受国内外开发人员喜爱。>>免费下载

下面这个例子将一列复选框以treeview控件展示层级数据。用户通过点击复选框选择数据项,并将选项保存为优先设置的一部分。这些选项被保存之后,我们仍然需要从数据中进行加载。


Treeview 的div部分:

1
2
3
<body>
  <div id="treeview"></div>
</body>

jQuery代码也相当简单:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
var ds = new kendo.data.HierarchicalDataSource({
    data: [{"text":"Item 1","id":"1","expanded":true,
      "checked":true,"items":[{"text":"Item 1.1",
      "id":"2","checked":true},{"text":"Item 1.2",
      "id":"3","checked":true},{"text":"Item 1.3",
      "id":"4","checked":true}]},{"text":"Item 2",
      "id":"5","expanded":true,"items":[{"text":"Item 2.1",
      "id":"6","checked":true},{"text":"Item 2.2",
      "id":"7"},{"text":"Item 2.3","id":"8",}]},
      {"text":"Item 3","id":"9"}]
});
 
var tv = $("#treeview").kendoTreeView({
    checkboxes: {
        checkChildren: true
    },
    dataSource: ds
}).data("kendoTreeView");
 
 
function treeToJson(nodes) {
 
    return $.map(nodes, function(n, i) {
     
        var result = { text: n.text, id: n.id, expanded: n.expanded, checked: n.checked };
     
         
 
        if (n.hasChildren)
            result.items = treeToJson(n.children.view());
 
        return result;
    });
}
 
var json = treeToJson(tv.dataSource.view());
console.log(JSON.stringify(json));

需要说明的一点是,函数 treetoJson()将遍历所有树节点并以JSON的形式返回数据数组。你可以在JS Bin中测试以上代码,但是要确保通过"Add Library"将"Kendo UI"加进去。



本文转载:CSDN博客