我的网格细节模板中有一个标签条。它工作正常,直到我决定分组我的数据,当我做的细节模板不再有效。在我调查期间,事实证明不同标签条的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()
刷新网格无效。
答案 0 :(得分:0)
这是我的坏事。我需要第二双眼睛。我使用的是错误的模型。当我调用.Read(read => read.Action("Data", "Log")
时,我正在返回logModel,它是我使用的模型继承的基本模型。所以当我使用正确的模型时加载它具有Id属性,但在读取之后我返回了没有的基本模型,这就是Id为空的原因。 :D