当您向Kendo Grid添加新项目时,它会添加带有输入字段/编辑器模板的行。在保存之前,排序或切换页面时,它会将添加的行呈现到网格中。
它不做任何ajax调用,所以它并没有真正保存在后台/数据库中,但我唯一的问题是,它在网格中呈现时,它不应该(排序应该真的只是取消任何现有的添加/编辑)。
对此有任何修复或解决方案吗?谢谢!
一种解决方法是在客户端页面上,为标题单击添加一个事件,该事件将调用cancel。
$("th.k-header").click(function(){
$("#grid").data('kendoGrid').cancelChanges();
});
请注意,这将使网格丢失所有更改。
另一个工作是在单击保存更改后处理数据,在数据源传输的parameterMap
或在控制器的服务器端删除空行,您可以忽略无效行。
您可以添加sort: onSortingFunctionName,到您的网格定义。然后编写函数来取消更改。查看这里可能发生的事件:https://demos.telerik.com/kendo-ui/grid/events
function onSortingFunctionName(arg) {
$("#grid").data('kendoGrid').cancelChanges();
}