剑道网格列中的局部视图

AGu*_*ald 5 c# ajax asp.net-mvc partial-views kendo-asp.net-mvc

我有一个启用了Ajax的kendo网格,该网格带有一个客户端模板,该模板显示行绑定到的模型中的数据。(由于ajax,使用columns.Template似乎是不可能的。)

@(Html.Kendo().Grid<Model>()
    .Columns(columns =>
    {
       columns.Bound(x => x.SubModel).ClientTemplate("bla #= SomePropertyOfSubModel # bla")
    })
    .DataSource(dataSource => dataSource.Ajax())
Run Code Online (Sandbox Code Playgroud)

这基本上可以工作,但是我对结果不满意。例如,我在使剑道控件在模板中工作时遇到问题。我宁愿将部分视图挂在客户端模板中,但没有成功。我最远的是

columns.Bound(x => x.SubModel).ClientTemplate(Html.PartialView("view", //??) //how to bind to SubModel?
.ToHtmlString())
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏。

Mik*_*ela 3

我认为你需要.ToClientTemplate()在你的剑道控制模板中,

view.cshtml

@(Html.Kendo().NumericTextBox()
      .Name("NameHere")
      .Min(0)
      .HtmlAttributes(new { style = "width:200px" })
      .ToClientTemplate()                                 
)
Run Code Online (Sandbox Code Playgroud)

进而,

 columns.Bound(c => c.SubModel).ClientTemplate(Html.Partial("view").ToHtmlString());
Run Code Online (Sandbox Code Playgroud)

编辑

如果你想将模型绑定到局部视图,你可以这样做

columns.Bound(c => c.SubModel.Property).Template(@<text>Html.Partial("view", item.SubModel)</text>);
Run Code Online (Sandbox Code Playgroud)