网格中的kendou ClientTemplate无法在asp.net mvc 4中运行

时间:2013-06-17 03:42:42

标签: asp.net-mvc asp.net-mvc-4 kendo-ui kendo-grid client-templates

我一直在寻找答案,并认为我错过了一些简单的事情。我有一个kendo网格,我希望其中一列成为另一个页面的链接,id为路由参数。但是,列单元格中的值是绑定值,并且我的模板不会更改。对此的任何见解将不胜感激。

@(Html.Kendo().Grid((IEnumerable<ProviderAccess>)Model.Providers)
.Name("grants-grid")
.Columns(columns =>
{
    columns.Bound(a => a.ProviderName);
    columns.Bound(a => a.HasAccess);
    columns.Bound(a => a.ProviderId).ClientTemplate("#= toggleLink(data) #");
})
.Scrollable()
)

<script>
function toggleLink(access) {
    var action = '@Url.Action("Toggle", "Access")';

    var html = kendo.format("<a href='{0}/{1}'>Toggle...</a>",
        action,
        access.ProviderId
    );

    return html;
}
</script>

2 个答案:

答案 0 :(得分:9)

当Kendo Grid绑定到服务器端的数据源(如代码)时,ClientTemplate不会使用。

您应该使用下面的列的模板方法

 columns.Template(p => "<a href='..../Toggle/Access/" + p.ProviderId + "'>Click</a>");

答案 1 :(得分:3)

dataSource.Server()将允许您使用custom.template

dataSource.Ajax()将允许您使用ClientTemplate

确定出来真的很令人沮丧......他们不可互换其中一个将根据ajax或服务器工作

              <%: Html.Kendo().Grid((List<RadCarePlus.V2.Web.Models.GetMeSomeData>) ViewData["Mydata"])
                .Name("Grid")
                .Columns(columns =>
                {
                    columns.Template(c => "<a href='ImplementationDetails?EpisodeID=" + c.EpisodeID + "'>" + c.EpisodeID + "</a>").Title("Testing").Width(140);
                    //columns.Bound(c => c.EpisodeID).Width(140);
                    columns.Bound(c => c.AuthStatus).Width(190);
                    columns.Bound(c => c.CPTCode).Width(100);
                    columns.Bound(c => c.inscarrier).Width(110);
                    columns.Bound(c => c.CreatedOn).Width(160);
                    //columns.Template(c => "<a href='ImplementationDetails?EpisodeID=" + c.EpisodeID + "'>" + c.EpisodeID + "</a>");
                    //columns.Template(c => c.EpisodeID).Title("Testing").ClientTemplate("<a href='ImplementationDetails?EpisodeID=#= EpisodeID#'>#= EpisodeID #</a>");
                })
                .Pageable(pageable=> pageable.ButtonCount(5))
                .Sortable(sortable => sortable.AllowUnsort(false))
                .DataSource(dataSource => dataSource.Server().PageSize(5)
                )

            %>