gpt4 book ai didi

javascript - Kendo Grid Edit Cancel 从网格中删除行

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:45:03 24 4
gpt4 key购买 nike

我有一个 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"))
)
)

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

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

datasource.add({
PassengerID: response.PassengerID,
Name: response.Name
});
datasource.sync();

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

我提到了this question link但这个解决方案对我不起作用。

最佳答案

问题是当您使用

添加到数据源时
dataSource.add()

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

dataSource.pushCreate(data)

这有效地做了同样的事情。但是,它还允许您在 _pristineData 更新时检查旧数据。

我真的希望这对某人有所帮助。我只是从剑道文档中某处的一行中发现了这一点。

remove也是如此。执行此操作的数据源函数是

dataSource.pushDestroy(data)

关于javascript - Kendo Grid Edit Cancel 从网格中删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30095022/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com