При редактировании родительской сетки дочерняя сетка обновляется в интерфейсе Kendo - PullRequest
0 голосов
/ 04 февраля 2019

Я использую Kendo UI для привязки вложенной сетки.Всякий раз, когда я обновляю родительскую сетку, ее дочерняя сетка тоже обновляется вместе с ней.Есть ли способ, с помощью которого я редактирую родительскую сетку, и ее дочерний элемент не затрагивается.Я использую C # Asp.net

    <script>
    function onDataBound(e) {
        this.expandRow(this.tbody.find("tr.k-master-row"));
    }

    function initDetail(e) {
        var grid = $("#CustomerDetail_" + e.data.CustomerId).data("kendoGrid");
        grid.dataSource.data([e.data]);
    }
</script>

@(Html.Kendo().Grid<DetailGridSample.Models.TestData>()
            .Name("grid")
            .Editable(editable => editable
                .Mode(GridEditMode.InCell)
            )                                              
            .Columns(columns =>
            {
                columns.Bound(e => e.CustomerId).Width(120);
                columns.Bound(e => e.Customer).Width(120);
                columns.Bound(e => e.CustomerGroup).Width(120);
            })


            .DataSource(dataSource => dataSource
                .Ajax()
                .Read(read => read.Action("LoadData", "Home"))
                .Model(
                        model =>
                        {
                            model.Id(t => t.CustomerId);
                        }
                 )).ClientDetailTemplateId("detailTemplate")
                   .Events(events => events.DetailInit("initDetail"))
)

<script id="detailTemplate" type="text/kendo">
    @(Html.Kendo().Grid<DetailGridSample.Models.TestData>()
                    .Name("CustomerDetail_#=CustomerId#")
                    .Editable(editable => editable
                        .Mode(GridEditMode.InCell)
                    )



                    .Editable(editable => editable
                        .Mode(GridEditMode.InCell)
                    )

                    .AutoBind(false)
                    .Columns(columns =>
                    {
                        columns.Bound(e => e.CustomerInvoice1).Width(120);
                        columns.Bound(e => e.CustomerInvoice2).Width(120);
                        columns.Bound(e => e.CustomerInvoice3).Width(120);
                    })

                    .DataSource(dataSource => dataSource
                        .Ajax()
                        .Batch(true)
                        .Model(
                                model =>
                                {
                                    model.Id(t => t.CustomerId);
                                }
                         )).ToClientTemplate()
    )
</script>

Перед редактированием родительской сетки

enter image description here

После редактирования родительской сетки enter image description here

...