0

.net mvc アプリケーションの詳細テンプレートに別のグリッドを持つ剣道グリッドがあります。サブ グリッドには、フィールド Id、Name、Total、および Score があります。このような列を定義できるようにしたい

columns.Template(@<text></text>).ClientTemplate("<a href=\"#\" onclick=\"myFunction(#=Id#)\">LinkText</a>");

興味深い部分はmyFunction(#=Id#)です。これを行うと、 Id is undefined というエラーが表示されます。サブグリッドではなくメイン グリッドで動作します。サブグリッドのフィールドにアクセスする方法はありますか? ありがとう。

これが私の見解です:

@( Html.Kendo().Grid<WinStream.WebUI.Models.ServiceItemGridModel>()
    .Name("ManageSIGrid")
    .Columns(columns =>
    {
        columns.Template(@<text></text>).ClientTemplate(
            "#=showSIFlag(Flagged)#" +
            "#=showSILock(Locked)#" +
            "#=showSIDeactive(Activated)#"
        ).Width(75);
        columns.Bound(o => o.Id).Width(50);
        columns.Bound(o => o.Name).Width(160);
        columns.Bound(o => o.Customer).Width(150);
        columns.Bound(o => o.Location).Width(150);
        columns.Bound(o => o.City);
        columns.Bound(o => o.State).Width(60);
        columns.Bound(o => o.Type);
        columns.Bound(o => o.Style);
        columns.Bound(o => o.Material);
    })
    .DataSource(dataSource => dataSource
        .Ajax()
        .ServerOperation(true)
        .Read(read => read.Action("ReadServiceItems", "Bids", new { bidId = Model.BidID }))
        .Model(model => model.Id(c => c.Id))
    )
    .Sortable()
    .Filterable(f => f
        .Extra(false)
    )
    .ClientDetailTemplateId("biditemgrid")
    .Navigatable()
    .Pageable(page => page.Refresh(true).PageSizes(true))
    .Scrollable(scroll => scroll.Virtual(true).Height(300))
    .Selectable(select => select.Mode(GridSelectionMode.Multiple))
    .AutoBind(true)
    .Events(events => events.DataBound("dataBound"))

)

<script id="biditemgrid" type="text/kendo-tmpl">
    @( Html.Kendo().Grid<WinStream.WebUI.Models.BidItemGridModel>()
            .Name("BidItemGrid")
            .Columns(columns =>
            {
                columns.Bound(o => o.Id).Width(50);
                columns.Bound(o => o.Name).Width(160);
                columns.Bound(o => o.Total).Width(75).Title("Total Price");
                columns.Bound(o => o.Score).Width(75);
            .Sortable()
            .Filterable(f => f
                .Extra(false)
            )
            .Navigatable()
            .Pageable()
            .Selectable(select => select.Mode(GridSelectionMode.Multiple))
            .ToolBar(toolbar => toolbar.Template(
                "<p class=\"float-left big-text no-margin-bottom\">Vendors</p>" 
            ))
            .DataSource(data => data
                .Ajax()
                .ServerOperation(false)
                .PageSize(5)
                .Read(read => read.Action("ReadBidItems", "Bids", new { bidId = Model.BidID, siId = "#=Id#" }))
                .Model(model => model.Id(c => c.Id))
            )
            .ToClientTemplate()
    )
</script>
4

1 に答える 1

0

スラッシュで鋭い記号をエスケープしてみてください。現在、外部グリッドによって評価されており、マスターグリッドにはそのようなフィールドがないため、このエラーがスローされます。

myFunction(\\#=Id\\#)
于 2013-02-27T07:37:36.653 に答える