Kendo Grid Edit取消从Grid中删除行

Rah*_*hul 3 javascript asp.net-mvc jquery kendo-ui kendo-grid

我有一个Kendo Grid ::

   @(Html.Kendo().Grid<Models.PassengerGrid>()
                        .Name("Passenger")
                        .Columns(columns =>
                        {
                            columns.Bound(x => x.PassengerID).Hidden(true);
                            columns.Bound(x => x.Name).Title("Name").Width(500).Encoded(true);
                            columns.Command(command => { command.Edit(); command.Destroy(); });
                        })
                        .Editable(editable => editable.Mode(GridEditMode.InLine))
                        .HtmlAttributes(new { style = "height:430px;" })
                        .DataSource(dataSource => dataSource
                            .Ajax()
                            .PageSize(5)
                            .ServerOperation(true)
                            .Model(model => { model.Id(p => p.PassengerID); })
                            .Read(read => read.Action("PassengerDetailTemplate", "GetData"))
                            .Create(update => update.Action("EditingPopup_Update", "Grid"))
                            .Update(update => update.Action("EditingPopup_Update", "Grid"))
                            .Destroy(update => update.Action("EditingPopup_Destroy", "Grid"))
                        )
                    )
Run Code Online (Sandbox Code Playgroud)

我在其中使用Javascript手动添加新行::

                var Grid = $("#Passenger").data("kendoGrid");
                            var datasource = Grid.dataSource;

                            datasource.add({
                                PassengerID: response.PassengerID,
                                Name: response.Name
                            });
                            datasource.sync();
Run Code Online (Sandbox Code Playgroud)

但问题是当我尝试编辑并在编辑时按下取消按钮,然后该行将从网格中删除.

我已经提到了这个问题链接这个解决方案对我不起作用.

Gau*_*ver 6

问题是当您使用添加到数据源时

dataSource.add()
Run Code Online (Sandbox Code Playgroud)

它内部在项目上放置一个"新"标志.因此,如果您取消该项目,它将被删除.我不知道为什么他们这样做,这是有史以来最愚蠢的事情.要使用取消按钮进行内联编辑,您需要动态添加自己的数据

dataSource.pushCreate(data)
Run Code Online (Sandbox Code Playgroud)

这实际上做了同样的事情.但是,它还允许您检查_pristineData中更新的旧数据.

我真的希望这有助于某人.我只在kendo文档中的某个地方找到了这个.

删除也是如此.执行此操作的数据源函数是

dataSource.pushDestroy(data)
Run Code Online (Sandbox Code Playgroud)