在剑道网格中使用 mvc 显示模板

Posted

技术标签:

【中文标题】在剑道网格中使用 mvc 显示模板【英文标题】:Use mvc display template in kendo grid 【发布时间】:2013-01-01 02:17:00 【问题描述】:

我有剑道网格:

@(html.Kendo().Grid<SomeType>()
.Columns(columns =>

    (...)
    columns.Bound(customer => customer.IsActive);

我有一个 mvc 显示模板 (Views/Shared/DisplayTemplate/bool.cshtml)

@model bool
@Html.CheckBoxFor(model => model, new  disabled = "true" )

(我也尝试使用 Boolean 作为类型和模板文件名)

这在网格外完美工作,但在网格中显示真/假(我想来自默认 mvc 显示模板)。

如何使剑道网格使用合适的显示模板?

(设置 UIHint 没有帮助)

【问题讨论】:

【参考方案1】:

试试这样的:

columns.Bound(p => p.GrasaDielectrica).ClientTemplate("<input type='checkbox' #= GrasaDielectrica ? checked='checked' : '' # disabled='disabled' ></input>")

【讨论】:

我相信这是唯一可行的方法。看看Telerik's documentation。如果您找到了另一种方法,请分享。我很想知道。【参考方案2】:

我找到了一种方法,但它远非理想,因为ViewModel 必须只有string 成员才能工作....而且我们实际上只是使用部分视图...

DisplayTemplate.cshtml:

@model ViewModel
@Html.Partial("PartialView", Model)

PartialView.cshtml:

@model ViewModel
@* write schtml here *@

KendoGuid.cshtml

...
.Columns(columns =>

    columns.Bound(x => x.GridViewModelField)
        .ClientTemplate("PartialView", new ViewModel
        
            ViewModelField = "#=GridViewModelField#",
        ).ToHtmlString());
)
...

【讨论】:

以上是关于在剑道网格中使用 mvc 显示模板的主要内容,如果未能解决你的问题,请参考以下文章

剑道网格弹出显示

在剑道网格 ASP.NET MVC ClientTemplate 中转义 +(加号)符号

单击按钮时剑道网格不会打开剑道窗口

如何在剑道模板中动态设置列

在 MVC 中重新绑定剑道网格

剑道网格 - 如何在添加/编辑子行时访问父行模型(详细网格)