将视图或按钮 Link 添加到 Kendo 网格

Adding View or Button Link to Kendo Grid

经过一番努力,我设法将我的模型绑定到我的 MVC 应用程序中的 Kendo 网格。我现在想要做的是在每一行的末尾添加一个 Html.ActionLink 或一个按钮,以便在单击时打开一个新的浏览器 window,其中包含所选人员的详细信息页面。

我的Grid代码是这样的:

@ModelType CDB.GridDetail
@Code

Dim myGridData As IQueryable(Of Person) = Model.GridDetailPersons

    Html.Kendo().Grid(Of Person)(myGridData) _
.Name("Grid") _
.Columns(Sub(c)
             c.Bound(Function(s) s.PersonID)
             c.Bound(Function(s) s.Status)
             c.Bound(Function(s) s.OperationsTeam)
             c.Template(Sub()
                            Html.ActionLink("View", "Details", New With {.id = "PersonID"}, New With {.target = "_blank"})
                        End Sub).Title("View").ClientTemplate("client template")
         End Sub) _
                         .Scrollable() _
                        .Render()
End Code

我遇到的问题是我找不到将行的 PersonID 绑定到 ActionLink 的 .id 的方法。我试过 Person.PersonID 和 myGridData.PersonID

代码呈现网格和数据但没有链接...该列为空。

感谢任何帮助。

列模板是一个模板,用Kendo的JS模板语言处理,然后用于每个显示的行。 IE。您需要编写代码编写一个 Kendo JS 模板,然后用于创建浏览器将呈现的内容。

本例因为Html.ActionLink不验证路由参数是将模板放入id参数:

Html.ActionLink("View", "Details", New With {.id = "#:PersonId#"}, New With {.target = "_blank"}

查看 Kendo 的模板 online

尝试了 Richard 的回答,但这没有用...返回语法错误。

根据他提供的 link 并查看其他一些文档,我确实发现了这个确实有效...

c.Bound(Function(p) p.PersonID).Template(Function(t) @<text>@Html.ActionLink("View", "Details", New With {.id = t.PersonID}, New With {.target = "_blank"})</text>
             End Function).Title("View Details").HtmlAttributes(New With {.style = "text-align:center;"})

我用来替换 c.Template(Sub..... 行