2015-05-19 105 views
1

我想用KendoUI构建ListView。因此,我需要创建ClientTemplateKendoUI递归模板

但我想知道的是,在创建ClientTemplate之后,我该如何在其内部使用该模板。

换句话说,我想创建一个Recursive Template如果这是有道理的。

这是我到目前为止有:

<script type="text/x-kendo-tmpl" id="template"> 
    <div class="submenu-item"> 
     #:Name# 
    </div> 
    <div class="submenu-children"> 
     # foreach (var child in ChildElements) { # 
      // In here I want to reuse this same template. 
     #}# 
    </div> 
</script> 

这背后的想法是,这样我可以创建元素及其所有子项的ListView。我会将孩子们的格式设置为稍微标签。

任何帮助,我将不胜感激。

+0

有些工作示​​例你可以做一个小提琴/道场与您现有的方法? –

+0

这是一个但很难,因为我使用KendoUI图书馆。不太清楚如何链接in.But这是一个链接,它显示了这个实现但不递归。 http://demos.telerik.com/aspnet-mvc/listview/index我刚刚创建了一个模型,其中有一个模型列表来模仿一个孩子。所以你想要做的是递归地显示每个孩子,直到你在树的“叶”。希望这是有道理的。 –

回答

2

你不需要做#foreach你的模板中,只需打个电话给

#= kendo.render(kendo.template($("\\#template").html()), data.ChildElements) # 

您可能会遇到一个错误,如果最底端的子元素没有ChildElements属性在这种情况下,只需添加一个

# if(data.ChildElements !== undefined && data.ChildElements.length > 0) { # 
    #= kendo.render(kendo.template($("\\#template").html()), data.ChildElements) # 
# } # 

看到http://jsbin.com/fagawo/1/edit?html,js,output

+0

谢谢你。对此做了一些改进,效果很好。 http://jsbin.com/xavuwinobe/2/edit –