Jquery 带有剑道UI网格的列中的局部视图

Jquery 带有剑道UI网格的列中的局部视图,jquery,asp.net-mvc,kendo-ui,kendo-asp.net-mvc,asp.net-mvc-partialview,Jquery,Asp.net Mvc,Kendo Ui,Kendo Asp.net Mvc,Asp.net Mvc Partialview,我想在剑道UI网格单元中显示局部视图 例如,我想象它是这样的(我知道它不起作用): @(Html.Kendo().Grid()) .名称(“网格”) .列(列=> { columns.Bound(x=>x.Id); columns.Bound(x=>x.Name); columns.Bound(x=>x.Field1); columns.Template(@) .ClientTemplate( “'”+Html.Partial(“_MyPartialView”,x.SubViewModel)+”

我想在剑道UI网格单元中显示局部视图

例如,我想象它是这样的(我知道它不起作用):

@(Html.Kendo().Grid())
.名称(“网格”)
.列(列=>
{
columns.Bound(x=>x.Id);
columns.Bound(x=>x.Name);
columns.Bound(x=>x.Field1);
columns.Template(@)
.ClientTemplate(
“'”+Html.Partial(“_MyPartialView”,x.SubViewModel)+”);
})
.DataSource(DataSource=>DataSource
.Ajax()
.Model(Model=>Model.Id(x=>x.Id))
.Read(Read=>Read.Action(“Read”,“Home”))
)
)
我发现我可以用jQuery来实现这一点,jQuery将提供对动作方法的调用。但是有没有最简单的方法呢


提前感谢。

我使用ClientRowTemplate实现了与上述类似的功能

请参阅以下文档:

基本上,我在局部视图中定义行模板,然后按如下方式渲染局部视图:

@(Html.Kendo().Grid(Model).Name("usersManageGrid")
          .Columns(columns =>
          {
              columns.Bound(c => c.LoginId).Visible(false);
              columns.Bound(c => c.FullName).Title("Name").Width(120);      
              columns.Bound(c => c.Email).Title("Username");
          }).ClientRowTemplate(Html.Partial("_TestPartial").ToHtmlString()))
<tr data-uid='#: LoginId #'>
    <td>
       <span class='description'><b>Name</b> : #: FullName# </span>
    </td>
    <td>
      @Html.Partial("_Test2Partial")
    </td>
</tr>
您仍然可以指定并绑定到其他列,如文档所示。如果希望正常,也可以传入子视图模型

.ClientRowTemplate(Html.Partial("_TestPartial",x.SubViewModel).ToHtmlString())
包含行模板的局部视图如下所示:

@(Html.Kendo().Grid(Model).Name("usersManageGrid")
          .Columns(columns =>
          {
              columns.Bound(c => c.LoginId).Visible(false);
              columns.Bound(c => c.FullName).Title("Name").Width(120);      
              columns.Bound(c => c.Email).Title("Username");
          }).ClientRowTemplate(Html.Partial("_TestPartial").ToHtmlString()))
<tr data-uid='#: LoginId #'>
    <td>
       <span class='description'><b>Name</b> : #: FullName# </span>
    </td>
    <td>
      @Html.Partial("_Test2Partial")
    </td>
</tr>

姓名:#:全名#
@Html.Partial(“\u Test2Partial”)
然后,您将看到我为第二列渲染了另一个局部视图,其中包含以下内容:

<span style="color:purple;"><b>Email</b> : #: Email# </span>
Email:#:Email#
最终结果如下所示:

@(Html.Kendo().Grid(Model).Name("usersManageGrid")
          .Columns(columns =>
          {
              columns.Bound(c => c.LoginId).Visible(false);
              columns.Bound(c => c.FullName).Title("Name").Width(120);      
              columns.Bound(c => c.Email).Title("Username");
          }).ClientRowTemplate(Html.Partial("_TestPartial").ToHtmlString()))
<tr data-uid='#: LoginId #'>
    <td>
       <span class='description'><b>Name</b> : #: FullName# </span>
    </td>
    <td>
      @Html.Partial("_Test2Partial")
    </td>
</tr>

您试图在单元格中渲染什么?我无法想象在单元格中渲染局部视图是最好的方法。我正在尝试从原始视图模型渲染一些子属性。它看起来像一张可以着色或不着色的日子列表。我一直在尝试做一些非常类似的事情,但失败了。据我所知,剑道网格只喜欢平面数据。我能想到的唯一方法就是创建一个子网格。我知道这是前一段时间发布的,希望你能找到一个解决方案,有什么乐趣吗?我想我也会这么做。遗憾的是现在还没有真正的剑道UI版本。