如何将数据加载到extjs中的递归dataView?

时间:2012-02-09 23:29:27

标签: templates extjs recursion store dataview

我有一个递归模板。

new Ext.XTemplate(
            '<tpl for="."><div>'+
            '<div class="select">{text}</div>'+
            '{[this.putChildren(values)]}'+
            ' </div></tpl>'
            ,
            {
                putChildren:function(values){


                    if(values.children){
                        Ext.each(values.children,function(child,index,arr){
                        return this.apply(values.children);
                    }


                })

我设置了itemSelector:'select'

问题是,当我加载数据时,我得到一个错误“records [i]未定义”,当我设置一个监听器时,每次点击都会触发事件,但是除了root之外,我在每个节点上都得到item = undefined。 我无法设置treeStore,因为dataview仅排除store或jsonstore。 (也许我做错了什么?)

所以我有一个简单的问题,我如何使用数据视图和商店绘制树? 我找不到任何好的追索权......

实际上我有这样的模板

http://www.youtube.com/watch?v=UhBjMws1H10&t=35m52s 我只是无法正确加载数据......

我需要Store或TreeStore还是别的什么?

提前thnx

2 个答案:

答案 0 :(得分:0)

那为什么不使用树面板呢? http://docs.sencha.com/ext-js/4-0/#!/api/Ext.tree.Panel

答案 1 :(得分:0)

你有没有解决过这个问题?有完全相同的问题。虽然我现在还没有花很多时间。

也许你直接在孩子们身上进行迭代是很有用的。 所以,而不是

<tpl for=".">

我认为你可以直接使用

<tpl for="children">

这使得可以使用 values 作为每个孩子的变量。