我用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网站和其他地方的示例似乎并不包括这种情况。
答案 0 :(得分:1)
您需要在模板内的控件中添加.ToClientTemplate()。我还要指出,您应该根据模板的ID数据为您的按钮指定一个唯一的名称。
@(Html.Kendo().Button()
.Name("deleteButton_"+data.MyID)
.HtmlAttributes( new {type = "button"} )
.SpriteCssClass("k-icon k-delete")
.Content("Delete")
.ToClientTemplate()
)