我正在使用Kendo Grid进行内联添加,但在服务器端我实际上创建了多个记录。 DataSourceRequest发回所有新创建的行,但只有一行被添加到网格中。在强制网格再次查询数据之前,其他添加的记录可能根本不会显示在网格中。
我有办法一次添加多行吗?
如果没有,有没有办法重新查询数据并将所有新添加的模型放在顶部?
在我创建新记录的控制器功能中,我将返回以下内容。 “models”包含所有新创建的记录:
return this.Json(models.ToDataSourceResult(request, this.ModelState), JsonRequestBehavior.AllowGet);
我在更新行时也遇到类似问题,因为服务器实际上可能会更新多行。由于“模型”包含多个模型,因此列表中的第一个模型可能是也可能不是要更新的实际模型,因此有时不同的编辑模型将替换在网格中选择要更新的模型。
谢谢, 罗布
答案 0 :(得分:1)
我最终使用了kendo网格数据源插入方法来添加我的控制器返回的任何尚未存在于网格中的记录。我在数据源的RequestEnd事件中执行了此操作。
为了使其适用于内联添加,我需要确保控制器返回的列表中的第一个模型始终是网格添加的模型。由于某种原因,在RequestEnd事件之后到达dataBinding事件之前,添加的初始模型没有ID。所以补充一下,我只是忽略了结果中的第一个模型,因为它已经在网格中了。
此外,在编辑手动插入数据源然后取消编辑的行时,网格会将其从数据源中删除。在编辑我手动插入数据源的行后直接遇到“删除”操作时,我不得不使用DataBinding事件中的preventDefault()函数来阻止它。