1

KendoUI で作成された ASP.NET MVC アプリのページがあります。ページには階層グリッドがあります (以下のリンクのように)。

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 に答える