1

クライアント詳細テンプレート用の 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>

グリッドが読み取る各 TaskItem には、リストである TaskSumariesList があります。ListView の Grid Client Detail でこのリストを使用したいと考えています。これどうやってするの?

4

2 に答える 2

3

グリッドの Events 呼び出しで、次のようなものを使用します。

.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) 
}
于 2015-05-13T18:00:49.657 に答える