分组和Kendo网格模板无法正常工作

时间:2017-10-17 17:16:25

标签: templates razor kendo-grid kendo-asp.net-mvc

我的网格细节模板中有一个标签条。它工作正常,直到我决定分组我的数据,当我做的细节模板不再有效。在我调查期间,事实证明不同标签条的Id已设置为null,而我打开的标签条保留其原始Id。我不确定为什么细节模板丢失了对Id的引用。以下是我的代码。

创建网格

 @(Html.Kendo().Grid(Model)
        .Name("ChangeLog")
        .Columns(columns =>
        {
            columns.Bound(m => m.ChangeDate2)
                .Title("Date and Time")
                .ClientTemplate("<span>#= formatUtcDateToLocal(ChangeDate2 ? ChangeDate : '' )#</span>")
                .Width("12%");
            ............................
        })
        .Filterable()
        .Selectable()
        .Sortable()
        .Groupable()
        .Resizable(resize => resize.Columns(true))
        .ToolBar(toolbar =>
        {
            toolbar.Template(
                    @<text>
                        <a class="k-button k-button-icontext k-grid-excel" href="#"><span class="k-icon k-i-excel"></span>Export to Excel</a>
                    </text>
                 );
        })

       .Events(e => e.FilterMenuInit("resizeFilter")            
       .DataSource(dataSource => dataSource
             .Ajax()
             .Read(read => read.Action("Data", "Log")
             .Data("buildParam"))
       )
       .DataBound("preselectCustomFilter"))
       .ClientDetailTemplateId("log-details-template")
       )

这就是我定义细节模板的方式

<script type="text/x-kendo-template" id="change-log-details-template">
<div>
   @(Html.Kendo().TabStrip()
  .Name("tabStrip_#=Id#")
  .Animation(animation => animation.Open(effect => effect.Fade(FadeDirection.In)))
  .SelectedIndex(0)
  .Items(tabstrip =>
  {
      tabstrip.Add().Text("Old Value").Content("<div class='oldValue' style='height:137px;padding:10px''><span>#=OldValue#</span></div>");
      tabstrip.Add().Text("New Value").Content("<div class='newValue' style='height:137px;padding:10px'><span'>#=NewValue#</span></div>");
  }
  )
  .ToClientTemplate())
</div>

当我在分组之前检查详细信息模板时,我看到正确应用了ID

<div class="k-widget k-tabstrip k-header k-floatwrap k-tabstrip-top" id="tabStrip_164317" ...>

在我进行分组之后,所有未初始化的模板在分组之前现在包含null而不是id

<div class="k-widget k-tabstrip k-header k-floatwrap k-tabstrip-top" id="tabStrip_null" ........

有关我需要做什么的任何提示?也许重绘网格?

更新

通过.refresh()刷新网格无效。

1 个答案:

答案 0 :(得分:0)

这是我的坏事。我需要第二双眼睛。我使用的是错误的模型。当我调用.Read(read => read.Action("Data", "Log")时,我正在返回logModel,它是我使用的模型继承的基本模型。所以当我使用正确的模型时加载它具有Id属性,但在读取之后我返回了没有的基本模型,这就是Id为空的原因。 :D