Kendo UI Treeview和XML数据源

时间:2012-11-05 11:39:34

标签: xml treeview datasource kendo-ui

我一直在阅读有关Treeview以及分层数据源和数据源的现有文档,但我对于可以与Treeview一起使用的可能的远程数据源类型感到遗憾。

除了json之外,还支持xml,对吧?是否可以绑定它并使用Treeview查看xml文件?

我一直在尝试这样的事情:

        <script>
            var ds = new kendo.data.DataSource({
                    transport: {
                        read: {
                            url:"http://localhost:8080/OnTheSpotRestfullAPI/testTree.xml"
                        }
                    },
                    schema: {
                        type: "xml",
                        data: "/tree/vehicles",
                        model: {
                            fields: {
                                car: "car/text()",
                                bike: "bike/text()"
                            }
                        }
                    }
                });

            $("#treeview").kendoTreeView({
                dataSource: ds
            });
        </script>

testTree.xml为:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>    
<tree>  
    <vehicles>
        <car>FM-1100</car>
        <car>FM-4200</car>
        <bike>FM-3100</bike>
    </vehicles>
    <personnel>
        <client>GH-3000</client>
        <vip>GH-3100</vip>
    </personnel>
</tree>

我希望生成的树类似于:

(车辆)

- (汽车)

---- FM-1100

---- FM-4200

- (自行车)

---- FM-3100

(人事)

- (客户端)

---- GH-3000

- (VIPS)

---- GH-3100

PS。 ()中的名称应该类似于包含其“子”的文件夹

但我似乎根本无法查看树..有点迷失在这里,有人可以指出我正确的方向吗?

提前致谢

1 个答案:

答案 0 :(得分:3)

只是为了确保:你应该在加载html后执行脚本代码,所以你应该将它包含在

<script>
    $(document).ready(function () {
        // The JavaScript code goes here
    });
</script>

应定义数据源ds HierarchicalDataSource而不是DataSource。 阅读XML示例我不确定层次结构是如何组织的(树),树的内容应该是什么。

您可以尝试以下方式:

<script>
    $(document).ready(function () {
        var ds = new kendo.data.HierarchicalDataSource({
            transport:{
                read:{
                    url:"testTree.xml"
                }
            },
            schema   :{
                type :"xml",
                data :"/tree/vehicles/car",
                model:{
                    fields:{
                        text:"text()"
                    }
                }
            }
        });


        $("#treeview").kendoTreeView({
            dataSource   :ds
        });
    });
</script>

XML就像:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<tree>
    <vehicles>
        <car>FM-1100</car>
        <car>FM-4200</car>
        <bike>FM-3100</bike>
    </vehicles>
    <personnel>
        <client>GH-3000</client>
        <vip>GH-3100</vip>
    </personnel>
</tree>

注意:不确定如何处理bike