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

时间:2014-04-02 09:33:03

标签: kendo-ui

我用Razor语法定义了一个Kendo DropDownList:

@(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>

这失败了。在Chrome调试控制台中,我得到:&#39;未捕获错误:无效模板&#39;。有没有办法在模板中放置另一个Kendo UI小部件? Telerik网站和其他地方的示例似乎并不包括这种情况。

1 个答案:

答案 0 :(得分:1)

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

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