1

少し苦労した後、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 を試しました

そのままのコードはグリッドとデータをレンダリングしますが、リンクはありません...列は空です。

どんな助けでも感謝します。

4

2 に答える 2

1

列テンプレートはテンプレートであり、Kendo の JS テンプレート言語で処理され、表示される各行に使用されます。すなわち。ブラウザーがレンダリングするコンテンツを作成するために使用されるコードを記述し、Kendo JS テンプレートを記述する必要があります。

この場合、Html.ActionLinkルート パラメーターを検証しないため、テンプレートを id パラメーターに入れます。

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

剣道のテンプレートをオンラインで参照してください。

于 2015-12-03T09:51:55.140 に答える
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..... 行を置き換えるために使用したもの

于 2015-12-03T15:56:36.730 に答える