绑定客户端模板中的两个字段以用于kendo网格列

deo*_*oll 5 asp.net-mvc kendo-ui kendo-grid

我得到一个InvalidOperationException,并带有一条消息:

绑定列需要字段或属性访问表达式

我的剃刀标记是这样的:

(@Html.Kendo().Grid<StackInfo>()
            .Columns(col =>
            {
                col.Bound(e => e.FileID).Title("ID");
                col.Bound(e => e.Name).Title("Filename");
                col.Bound(e => e.Status);

                col.Bound(e => new { Status = e.Status, FileID = e.FileID }).ClientTemplate("#if(Status == 'new') {#"
                    + "<a href=\"View?TaskID=#FileID#\">View</a>"
                    + "#} else {#"
                    + "<a href=\"Open?TaskID=#FileID#\">Open</a>"
                    + "#} #").Title(string.Empty);
            })
            .AutoBind(false)
            .DataSource(ds => ds
                .Ajax()
                .Read(r => r.Action("Tasks_Read", "Task"))
                .PageSize(10)
                )
            .Pageable()
            .Name("tasksGrid")
            .Scrollable(k => k.Height(205)))
Run Code Online (Sandbox Code Playgroud)

我想要完成的是网格将显示一个额外的列; 它提供了一个链接,其动作实际上基于"状态"字段中的值.因此我写了这样的ClientTemplate.

但是我在那条线上得到了一个例外.这样做的正确方法是什么?

Jar*_*zak 6

我认为问题出在.Bound(e => new { Status = e.Status, FileID = e.FileID })你的第四栏.试试这段代码:

columns.Template(@<text></text>)
    .ClientTemplate("#if(Status == 'new') {#"
                + "<a href=\"View?TaskID=#FileID#\">View</a>"
                + "#} else {#"
                + "<a href=\"Open?TaskID=#FileID#\">Open</a>"
                + "#} #").Title(string.Empty);
Run Code Online (Sandbox Code Playgroud)