我有一个带有Kendo ListView的Kendo Grid,用于其客户端详细信息模板。 这是网格:
@(Html.Kendo().Grid<ITS.BusinessModel.TaskManager.TaskItem>()
.Name("grdPackage" + Model + "sTasks")
.Columns(columns =>
{
columns.Bound(taskModel => taskModel.WorkflowInstanceId);
columns.Bound(taskModel => taskModel.WorkflowInstanceName);
columns.Bound(taskModel => taskModel.Name).ClientTemplate("<a onclick='openTasksForm(#= ID#)' > #= Name # </a>");
}
.ClientDetailTemplateId("TaskSumeriesListViewTemplate")
.AutoBind(false)
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(20)
.ServerOperation(true)
.Model(model => model.Id(Task => Task.ID))
.Read(read => read.Action("TaskItemsList_Read", "Task", new { packageGroupID = Model, packageType = (Model == -2) ? 0 : (Model == -1) ? 1 : 2 }))
)
)
以下是客户端模板:
<script type="text/x-kendo-tmpl" id="TaskSumeriesListViewTemplate">
@(Html.Kendo().ListView<ITS.BusinessModel.TaskManager.WorkflowInstanceSummaryItem>("#=TaskSumaries#")
.Name("listViewPackage")
.TagName("div")
.ClientTemplateId("SummeriesTemplate")
.ToClientTemplate()
)
</script>
这是ListView的模板:
<script type="text/x-kendo-tmpl" id="SummeriesTemplate">
<div>
#=ColumnName# : #=ColumnValue#
</div>
</script>
Grid读取的每个TaskItem都有一个TaskSumariesList,它是一个List。 我想在ListView的Grid Client Detail中使用此列表。 我怎么能这样做?
答案 0 :(得分:2)
在您的网格事件调用中,使用以下内容:
.Events(e => e.DetailInit("detailInit")
然后,你可以这样做:
function detailInit(e) {
var list= $("#listViewPackage").data("kendoGrid");
list.dataSource.data(e.data.TaskSumariesList)
}
当发生扩展时,列表将填充适当的数据。
您可能需要为列表名称执行以下操作:
.Name("listViewPackage#=WorkflowInstanceId#")
这样,您可以确保您拥有正确列表的正确数据:
function detailInit(e) {
var list= $("#listViewPackage" + e.data.WorkflowInstanceId).data("kendoGrid");
list.dataSource.data(e.data.TaskSumariesList)
}
答案 1 :(得分:0)
实际上肖恩是对的。欲了解更多信息,请参阅: Kendo UI Grid: Detail Template Binding
您还可以将 DataSource(ds =&gt; ds.Ajax())添加到您的第二个网格中。
@(Html.Kendo().ListView<ITS.BusinessModel.TaskManager.WorkflowInstanceSummaryItem>("#=TaskSumaries#")
.Name("listViewPackage")
.TagName("div")
.ClientTemplateId("SummeriesTemplate")
.DataSource(ds => ds.Ajax())
.ToClientTemplate()
)
似乎客户端模板不适用于本地绑定网格。