使用数据将行添加到javascript中的kendo网格

时间:2018-07-16 20:10:44

标签: javascript kendo-ui telerik

添加新记录时,将向用户显示一个包含要填写表格的模式。单击“确定”时,数据将保存到数据库,并且模式关闭。但是,我现在必须将此记录添加到网格中。我不能只从数据库刷新网格,因为它可以清除用户可能在网格中所做的其他更改。

我需要从各种表单字段中获取数据,并将其作为JavaScript中的新行传递到网格。我看过一个示例,其中将行从一个剑道网格复制到另一剑道网格,但是我找不到从暂存客户端将新记录添加到剑道网格的任何内容。这是从一个网格复制到另一个网格的示例:how to add a new row with pre defined data in kendo grid?

基本上我想做的是这样的:

var newRow = {field1: $("#field1").val(), field2: $("#field2").val(), field3: $("#field3").val()};

var grid = $("#grid").data("kendoGrid");
grid.addRow(newRow);

2 个答案:

答案 0 :(得分:1)

这不是addRow()的目的。根据文档,它“将一个空数据项添加到网格” ,因此它不接受任何参数,也不将数据添加到网格。

您应该使用dataSource.add()添加新数据:

var newRow = {field1: $("#field1").val(), field2: $("#field2").val(), field3: $("#field3").val()};

var grid = $("#grid").data("kendoGrid");
grid.dataSource.add(newRow);

Demo

答案 1 :(得分:0)

使用grid.insert(0,dataItem);在Grid顶部插入

您的样本:

var newRow = {field1: $("#field1").val(), field2: $("#field2").val(), field3: $("#field3").val()};

var grid = $("#grid").data("kendoGrid");
grid.dataSource.insert(0, newRow);