kendo 网格列中的部分视图

Partial View in kendo grid column

我有一个 ajax 启用的 kendo 网格和一个客户端模板,该模板显示来自行绑定到的模型的数据。 (因为 ajax,使用 columns.Template 似乎是不可能的。)

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

这个基本可以,但是我对结果不太满意。例如,我无法使模板中的 kendo 控件正常工作。我宁愿在客户端模板中挂一个局部视图,但没有成功。我得到的最远的是

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

感谢任何帮助。

我认为您的 kendo 控件模板中需要 .ToClientTemplate()

view.cshtml

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

然后,

 columns.Bound(c => c.SubModel).ClientTemplate(Html.Partial("view").ToHtmlString());

编辑:

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

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

这是实现此目的的另一种方法。

 @(Html.PageElement().Kendo().Grid<myModel>()
      .Name("GridName")
      .Columns(col => 
                     Html.RenderPartial("Partials/_myDamnedPartial", col)