javascript - 如何在一行或剑道网格中添加数据

标签 javascript jquery arrays kendo-grid

我有一个场景,我想通过程序填充一些剑道网格列。所以我假设我必须捕获行并在列中填充数据。

我能够根据某些事件(例如单击)获取行 ID。但我不知道如何实用地更新基于行 ID 的列的值。

http://jsfiddle.net/xojke83s/4/

上面是 JS fiddle ,我可以在其中获取特定行的行 ID。我想知道通过程序在任何列中填充一些数据的方式。在上面的示例中,该列应该是 operationContext。

以下是相同的代码-

<div id="grid"></div>

$("#grid").kendoGrid({
                    "dataSource": {
                      "schema": {
                        "model": {
                          "id": "id",   
                          "fields": {       
                            "OperationContext": {
                              "type": "string",                              
                              "editable": "false"
                            }
                          }
                        }
                      }                     
                    },
                    "editable": "popup",
                    "toolbar": [
                      {
                        "name": "create",
                        "text": "Add a New Record"
                      }
                    ],
                    "columns": [
                      {

                        "field": "Name",
                        "title": "Name"
                      },
                      {
                        "field": "Age",
                        "title": "Age"

                      },
                      {
                        "field": "OperationContext",
                        "title": "Operation Context"
                      },
                      { command: ["edit", "destroy"], title: "&nbsp;", width: "250px" }
                         ]
                        });

          $(".k-grid-add").on("click", function () {

              var grid = $("#grid").data("kendoGrid").dataSource.data([{OperationContext: "IsAdded"}]);

           });

//bind click event to the checkbox
var grid = $("#grid").data("kendoGrid"); 
grid.bind("edit", grid_edit); 

function grid_edit(e){

    console.log(e.model.uid);
}

提前致谢。

最佳答案

根据要求回复评论

我已经用这个更新了你的 fiddle :updated js fiddle

我已经修改了编辑代码来做到这一点:

function grid_edit(e){

    console.log(e.model);

    if(!e.model.isNew() || e.model.id === 0){
        e.model.set("OperationContext","I am being updated");
    }

}

它只会为新项目或 id 大于 0 的地方添加插入 (defaultValue) 和更新文本。

我可以看到新创建的项目的逻辑,如果值为空或者它被用作状态跟踪器,我也可以看到编辑过的项目的逻辑。

但是,如果您删除了一个项目,那么肯定会从您的 datasource 中删除该项目,并且您将无法再访问该项目,所以为什么要存储更新/指示对值的更新被删除。

关于javascript - 如何在一行或剑道网格中添加数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32392621/

相关文章:

javascript - 将值传递给 JavaScript

javascript - 在 JqueryUI 的 div 中居中按钮

javascript - Express.js(node.js框架)带有sql数据库,无法正确连接文件之间

javascript - Durandal:将模式弹出窗口移动到页面顶部

javascript - 通过 Javascript/Jquery 更改 JSColor 值

javascript - 使用for循环显示数组

c++ - 如何将引用变量返回到函数中?

javascript - 提取 Json 响应

javascript - 单击产品时动态生成页面内容

javascript - 创建键数组和值数组数组