3

在 Kendo UI Grid 中使用 ClientRowTemplate的示例使用了一个讨厌的 HTML 字符串

.ClientRowTemplate(
    "<tr><td colspan=\"6\">" +
        "<div class=\"customer-details\">" +
            "<img src=\"" + @Url.Content("~/Content/web/Customers/") + "#=CustomerID#.jpg\"" +
                "alt=\"#=ContactName#\" />" +
            "<h3 class=\"k-widget\">#=ContactName#</h3>" + 
            "<dl>" +
               "<dt>Name:</dt><dd>#=ContactName#</dd>" +
               "<dt>Company:</dt><dd>#=CompanyName#</dd>" + 
               "<dt>Country:</dt><dd>#=Country#</dd>" +
            "</dl>" +
            "<dl >" +
                "<dt>Address:</dt><dd>#=Address#</dd>" +
                "<dt>Phone:</dt><dd>#=Phone#</dd>" +
            "</dl>" +
        "</div>" +
    "</td></tr>"        
)

我目前正在使用部分视图.ClientRowTemplate(Html.Partial("_ClientRowTemplate").ToHtmlString()),但最好将它放在同一个视图文件中。

有没有一种内置的方式来使用像<script id="rowTemplate" type="text/x-kendo-tmpl">块这样更好的东西?我仍然想使用 Kendo MVC 助手而不是 JavaScript。

4

1 回答 1

2

查看 Haacks 关于模板化 razor 代表的博客。 http://haacked.com/archive/2011/02/27/templated-razor-delegates.aspx/

基本上,您可以定义一大块将呈现为 HTML 的剃刀

定义你的剃刀代表

@{
Func<dynamic, object> tableRow = @<tr></tr>;
}

然后这样做

.ClientRowTemplate( @tableRow(null).ToString() )
于 2014-03-12T13:59:55.567 回答