将视图或按钮链接添加到Kendo Grid

时间:2015-12-03 09:42:03

标签: asp.net-mvc vb.net razor kendo-grid kendo-ui-grid

经过一番努力,我已经设法将我的模型绑定到我的MVC应用程序中的Kendo Grid。我现在要做的是在每行的末尾添加一个Html.ActionLink或一个按钮,这样当点击它时,它会打开一个新的浏览器窗口,其中包含所选人员的详细信息页面。

我的网格代码是这样的:

@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

代码,因为它呈现网格和数据,但没有链接......列是空的。

任何帮助表示感谢。

2 个答案:

答案 0 :(得分:1)

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

在这种情况下,因为Html.ActionLink不验证路由参数是将模板放入id参数:

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

请参阅Kendo的模板online

答案 1 :(得分:0)

尝试了理查德的答案,但这不起作用......返回语法错误。

按照他提供的链接并查看其他一些文档,我确实找到了确实有用的文件......

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 ..... line