Kendo ui 在DropDownList项目模板中包含剑道小部件

Kendo ui 在DropDownList项目模板中包含剑道小部件,kendo-ui,Kendo Ui,我正在用Razor语法定义剑道下拉列表: @(Html.Kendo().DropDownList() .Name("viewList") .BindTo(Model.Definitions) .DataTextField("Name") .DataValueField("Name") .HtmlAttributes(new { style = "width: 400px" }) .Value("Default") .TemplateI

我正在用Razor语法定义剑道下拉列表:

@(Html.Kendo().DropDownList()
    .Name("viewList")   
    .BindTo(Model.Definitions)
    .DataTextField("Name")
    .DataValueField("Name")
    .HtmlAttributes(new { style = "width: 400px" })
    .Value("Default")
    .TemplateId("item-template"))
使用外部项目模板:

<script id="item-template" type="text/x-kendo-template">
    <div>
        #= Name #
    </div>
</script>

#=姓名#
我想在文本前放置一个按钮:

<script id="item-template" type="text/x-kendo-template">
    <div>
    @(Html.Kendo().Button()
        .Name("deleteButton")
        .HtmlAttributes( new {type = "button"} )
        .SpriteCssClass("k-icon k-delete")
        .Content("Delete")) 
    #= Name #
    </div>
</script>

@(Html.Kendo().Button())
.Name(“删除按钮”)
.HtmlAttributes(新的{type=“button”})
.spritecsclass(“k图标k删除”)
.内容(“删除”))
#=姓名#

这是失败的。在Chrome调试控制台中,我得到:“未捕获错误:无效模板”。有没有办法在模板中放置另一个剑道UI小部件?Telerik站点和其他地方的示例似乎没有涵盖这种情况。

您需要在模板内的控件中添加一个.ToClientTemplate()。我还将指出,您应该根据模板的ID数据为按钮指定一个唯一的名称

@(Html.Kendo().Button()
        .Name("deleteButton_"+data.MyID)
        .HtmlAttributes( new {type = "button"} )
        .SpriteCssClass("k-icon k-delete")
        .Content("Delete")
        .ToClientTemplate()
)