我有一个使用ClientDetailTemplate定义的层次网格,如下所示。
@(Html.Kendo().Grid(Model.NotesList) //Bind the grid to NotesList
.Name("activityNotesGrid")
.Columns(columns =>
{
// Create a column bound to the Date property
columns
.Bound(n => n.Date)
.Title("DATE")
.Format("{0:MM/dd/yyyy}");
// Create a column bound to the Author property
columns
.Bound(n => n.Author)
.Title("ADDED BY");
})
.Filterable()
.Sortable()
.Scrollable()
.DataSource(dataSource => dataSource
.Ajax()
.ServerOperation(true)
)
.Events(events => events.DataBound("grid_dataBound"))
.ClientDetailTemplateId("threadedNotesTemplate")
)
<script id="threadedNotesTemplate" type="text/kendo-tmpl" class=".k-grid-header">
@(Html.Kendo().Grid<ActivityThreadedNoteModel>()
.Name("grid_#=NoteId#")
//.Animation(animation => animation.Open(open => open.Fade(FadeDirection.In)))
.Columns(columns =>
{
//columns
// .Bound(p => p.RegistryId)
// .Title("RegistryId");
//columns
// .Bound(p => p.RegistryDisplayName)
// .Title("Registry");
columns
.Bound(p => p.Date)
.Format("{0:MM/dd/yyyy}");
//.Title("Care Guideline");
columns
.Bound(p => p.Author);
columns
.Bound(p => p.NoteType);
//.Title("Process Status");
//.Title("Outcome Status");
columns
.Bound(p => p.Note);
columns
.Bound(p => p.NoteDetailsId)
.ClientTemplate(
"# if (ShowInOverview == true) { #" +
"<i><a href='" + Url.Action(Constants.Actions.Show_HideInOverview_Note, Constants.Controllers.PatientActivity) + "?**NoteDetailsId**= #=item.NoteDetailsId #&showInOverview=false'" + ">" + Medventive.Registry.UI.Web.Resources.RegistryMVCWeb.HideInOverview + "</a></i>" +
"# } else { #" +
"<i><a href='" + Url.Action(Constants.Actions.Show_HideInOverview_Note, Constants.Controllers.PatientActivity) + "?NoteDetailsId= #=item.NoteDetailsId #&showInOverview=true'" + ">" + Medventive.Registry.UI.Web.Resources.RegistryMVCWeb.HideInOverview + "</a></i>" +
"# } #"
);
})
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(10)
.Read(read => read.Action(Constants.Actions.LoadPatientThreadedNotes, Constants.Controllers.PatientActivity, new { NoteId = "#=NoteId#" }))
)
.Pageable()
.Sortable()
.ToClientTemplate()
)
</script>
在运行时,我收到一个javascript错误,即item.NoteDetailsId未定义。我需要将Id传递给动作/控制器。我的视图模型确实有NoteDetailsId属性,它在模型中有一个值。
我是剑道新手,并且会在这里提供任何帮助。
答案 0 :(得分:0)
有趣的是,对于kendo分层网格,它尝试在ajax调用中从服务器获取值之前呈现网格。
我通过在ajax调用上将id值传递给子网格,在渲染它们时隐藏它们并使用kendo grid自定义命令和jquery在单击子项的相应链接时调用控制器来解决了上述问题