1

我在 ASP.NET MVC 应用程序中有一个页面,用 KendoUI 制作该页面有一个分层网格(如下面的链接)

http://demos.kendoui.c​​om/web/grid/hierarchy.html

代码工作正常。

详细信息网格绑定到以下类

public class ScheduledInspectionInfo
{
    public ScheduledInspectionInfo();

    public string CommandName { get; set; }
    public string IconPath { get; set; }
    public int InspectionID { get; set; }
    public DateTime PeriodEndDate { get; set; }
    public int PeriodNo { get; set; }
    public DateTime PeriodStartDate { get; set; }
    public int PermitID { get; set; }
}

IconName 字段包含我需要在网格中显示的图标的名称。但我不能让它工作

如果我将网格定义如下:

Html.Kendo().Grid<MyPermitNow.ScheduledInspectionInfo>()
    .Name("grid_#=PermitID#")   
    .Columns(columns =>
    {
        columns.Bound(p => p.PeriodNo).Title("No.").Width(200);
        columns.Bound(p => p.PeriodStartDate).Format("{0:d}").Width(200);
        columns.Bound(p => p.PeriodEndDate).Format("{0:d}").Width(200);
        columns.Bound(p => p.IconPath).Title("Status");
    })
    .DataSource(dataSource => dataSource
        .Ajax()
        .PageSize(5)        
        .Read(read => read.Action("HierarchyBinding_SearchDetail", "Septic", new { permitID = "#=PermitID#" }))
    )
    .Pageable()
    .Sortable()
    .ToClientTemplate() 

状态栏显示图标名称

但是,如果我更改状态列定义如下

columns.Bound(p => p.IconPath).Title("Status").ClientTemplate("<img src='#= IconName #' />");

它给了我 JavaScript 错误:

ReferenceError: IconName is not defined

尝试展开主行以查看详细信息时

知道有什么问题吗?

谢谢

4

2 回答 2

4

由于IconPath定义的是详细信息对象,因此对于您的模板,您必须转义#字符才能访问详细信息(#= ... #映射到主元素的属性和\\#= ... \\#详细信息元素)。

在您的情况下,您应该使用:

columns.Bound(p => p.IconPath)
       .Title("Status")
       .ClientTemplate("<img src='\\#= IconPath \\#' />");
于 2013-04-23T13:40:16.590 回答
0

我想你拼错了什么。IconName 属性从未定义。

改用 IconPath

columns.Bound(p => p.IconPath).Title("Status").ClientTemplate("<img src='#= IconPath #' />");
于 2013-04-23T10:36:57.527 回答