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