取消内联剑道网格中的更新删除行

2024-02-24

我正在使用两个剑道内联网格父级和子级。子网格包含产品列表,当用户从子网格中选择产品(多项选择)并单击保存按钮时,它将插入到父网格中。

子网格:

var selectedIds = {};

var ctlGrid = $("#KendoWebDataGrid3");
ctlGrid.kendoGrid({
    dataSource: {
        data:data1,
        schema: {
            model: {
                id: 'id',
                fields: {
                    select: {
                        type: "string",
                        editable: false
                    },

                    Qty: {
                        editable: true,
                        type: "number",
                        validation: { min: 1, required: true }
                    },
                    Unit: {
                         editable: false,
                         type: "string"
                    },
                    StyleNumber: {
                         editable: false,
                        type: "string"
                    },
                    Description: {
                         editable: false,
                        type: "string"
                    }


                }
            }
        },
        pageSize: 5
    },
    editable: 'inline',
    selectable: "multiple",
    sortable: {
        mode: 'single',
        allowUnsort: false
    },
    pageable: true,
    columns: [{
        field: "select",
        title: " ",
        template: '<input type=\'checkbox\' />',
        sortable: false,
        width: 35},
    {

        title: 'Qty',
        field: "Qty",
        width:90},
    {
        field: 'Unit',
        title: 'Unit',
        width: 80},
    {
        field: 'StyleNumber',
         title: 'Style Number',
        },
    {
        field: 'Description',
        width: 230},

   {command: [<!---{text:"Select" ,class : "k-button",click: selectProduct},--->"edit" ], title: "Command", width: 100 }

   ],
    dataBound: function() {
        var grid = this;            
        //handle checkbox change
        grid.table.find("tr").find("td:first input")        
            .change(function(e) {                  
                var checkbox = $(this);     
                var selected = grid.table.find("tr").find("td:first input:checked").closest("tr");

                grid.clearSelection();      

                //persist selection per page
                var ids = selectedIds[grid.dataSource.page()] = [];

                if (selected.length) {
                    grid.select(selected);
                    selected.each(function(idx, item) {
                        ids.push($(item).data("id"));
                    });                    
                } 

            })
            .end()
            .mousedown(function(e) {
                e.stopPropagation();
            })

        //select persisted rows
        var selected = $();
        var ids = selectedIds[grid.dataSource.page()] || [];

        for (var idx = 0, length = ids.length; idx < length; idx++) {
            selected = selected.add(grid.table.find("tr[data-id=" + ids[idx] + "]")                   );
        }

        selected
            .find("td:first input")
            .attr("checked", true)
            .trigger("change");


    }
});

var grid = ctlGrid.data("kendoGrid");

grid.thead.find("th:first")
    .append($('<input class="selectAll" type="checkbox"/>'))
    .delegate(".selectAll", "click", function() {
        var checkbox = $(this);            

        grid.table.find("tr")
            .find("td:first input")
            .attr("checked", checkbox.is(":checked"))
            .trigger("change");
    });

保存按钮点击事件

        function selectProduct()
    {

        //Selecting child Grid
        var gview = $("#KendoWebDataGrid3").data("kendoGrid");
        //Getting selected rows
        var rows = gview.select();

            //Selecting parent Grid
        var parentdatasource=$("#grid11").data("kendoGrid").dataSource;                         
        var parentData=parentdatasource.data();


            //Iterate through all selected rows
            rows.each(function (index, row) 
            {
                var selectedItem = gview.dataItem(row);
                var selItemJson={id: ''+selectedItem.id+'', Qty:''+selectedItem.Qty+'',Unit:''+selectedItem.Unit+'',StyleNumber:''+selectedItem.StyleNumber+'',Description:''+selectedItem.Description+''};


                //parentdatasource.insert(selItemJson);
            var productsGrid = $('#grid11').data('kendoGrid');
            var dataSource = productsGrid.dataSource;
            dataSource.add(selItemJson);
            dataSource.sync();



            });

        closeWindow();

    }

父网格:

 var data1=[];
    $("#grid11").kendoGrid({
            dataSource: {
                data:data1,

            schema: {
                    model: { id: "id" ,
                        fields: {

                                    Qty: { validation: { required: true } },
                                    Unit: { validation: { required: true } },
                                    StyleNumber: { validation: { required: true } },
                                    Description: { validation: { required: true } }
                                }
                          }
                     },
            pageSize: 5
        },
        pageable: true,
        height: 260,
        sortable: true,
        toolbar: [{name:"create",text:"Add"}],
        editable: "inline",
        columns: [

              {field: "Qty"},
              {field: "Unit"},
              {field: "StyleNumber"},
              {field: "Description"},
              { command: ["edit", "destroy"], title: "&nbsp;", width: "172px" }]

    });
    $('#grid11').data().kendoGrid.bind("change", function(e) {
      $('#grid11').data().kendoGrid.refresh();
    });
    $('#grid11').data().kendoGrid.bind('edit',function(e){

      if(e.model.isNew()){
           e.container.find('.k-grid-update').click(function(){
              $('#grid11').data().kendoGrid.refresh();

           }),
           e.container.find('.k-grid-cancel').click(function(){
               $('#grid11').data().kendoGrid.refresh();

           })

        }

 })

将数据添加到父网格工作得很好,没有问题,但是当我选择父网格添加新行进行编辑然后触发取消按钮行被删除。

我无法找出问题所在。请帮助我。


我发现错误了,希望能帮到你。

如果您没有配置 dataSource: schema: model "id" 字段,则在更新之前点击另一行中的编辑或点击取消时,会删除该行。

var dataSource = new kendo.data.DataSource({
        ...
        schema: {
            model: {
                id:"id", // Look here, if you did not config it, issue will happen
                fields: {...
                       ...}
            }
        }   

       ...
})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

取消内联剑道网格中的更新删除行 的相关文章

  • jquery Mobile Tap 和冒泡/传播

    在 android 2 x 浏览器中查看此示例 它是在我的应用程序中复制场景的示例 http johnchako net samples tap html http johnchacko net samples tap html 它是关于监
  • Java事件和事件监听器[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我在 Google 上搜索以了解如何
  • 自定义 Ajax 绑定无法正常工作

    我有以下自定义 Ajax 绑定代码 即使它显示第一页的数据 也会存在以下问题 The request Sorts在 Orders Read 方法中作为 NULL 出现 The request PageSizeOrders Read 方法中的
  • 将日期值绑定到角度剑道日期选择器中的 ng-model

    我有一个API 它以这种格式返回日期 014 08 26T15 10 45 402Z 我正在使用角度kendo ui 我面临的问题是日期没有绑定到kendo日期选择器 有人可以吗帮帮我
  • 在 Kendo 网格读取操作中发送附加参数

    我有一个剑道网格 如下所示 Html Kendo Grid
  • 使用 MVVM 时将事件放在哪里?

    我应该将所有事件放在视图代码后面还是有更合适的方法 例如将命令放在 ViewModel 中 例如 我想在双击数据网格行时打开选项卡 我应该在哪里处理这个事件 不 你不应该将事件放在代码后面 在MVVM 模型 视图 视图模型 设计模式中 视图
  • Kendo mvc grid 内联编辑模式 DateTimePicker 模板给出错误

    我正在使用 Kendo UI mvc 网格来列出数据 我正在这个网格中进行内联编辑 我使用 EditorTemplate 作为日期时间字段 这样它将在内联编辑模式下为日期时间字段提供日期时间选择器 当我要单击 更新 按钮时 它会给我这样的验
  • 调用事件处理程序

    我有以下事件处理程序 private EventHandler
  • 具有条件选择动作的剑道网格列

    这是我得到的 columns Bound t gt t Id Title Template
  • 在轨迹栏 ValueChanged 上触发事件,但不在代码中触发

    我希望能够在代码中修改轨迹栏的 value 属性 而不触发我的事件处理程序 我希望仅当用户通过拖动滑块或用键盘移动滑块来更改控件时才触发该事件 实现这一目标的最简单方法是什么 我有 6 个轨迹栏 我想根据更改的轨迹栏来更改其中 3 个的值
  • javascript - 按钮需要单击两次才能触发 onclick

    为什么我的按钮需要单击两次才能触发 onclick 事件 stackoverflow 上还有其他一些线程也存在同样的问题 但在我发现的所有线程中 原始发布者将事件处理程序放在函数内 我的代码不是这样的 Html ul li First ch
  • Josh Smith 的 MVVM 示例应用程序中有关 EventHandler 的问题

    以下代码来自 Josh Smith 的 MVVM 示例
  • 获取剑道网格中的点击事件

    我正在尝试获取 Kendo Grid 的单击事件 以便我可以将内容绑定到 Shift 和 Ctrl 单击 我无法使用 Kendo 提供的固有多选功能 因为它不支持拖放 当我在 dataBound 事件之后创建函数时 我的函数会在单击时被调用
  • 如何检测元素是否已滚动但仅滚动一次?

    我正在尝试检测某个元素是否已滚出并完成了以下代码 window bind scroll function var btn intro div summary a href top if window scrollTop gt btn off
  • AngularJS 摘要循环运行的频率是多少?

    在讨论 AngularJS 的优点时 双向数据绑定通常被认为是 Angular 相对于其他 JS 框架的主要优点 深层发掘 https docs angularjs org guide scope integration with the
  • Kendo 网格列宽度 + 可滚动

    我正在尝试从 JavaScript 绑定到可滚动剑道网格 但在列宽方面遇到了一些问题 这fiddle http jsfiddle net mnTGm 1 演示了问题 问题末尾的代码 我在 html 中指定标头并向其中一个标头添加宽度 然后
  • 不显眼的 Javascript 混淆了事件处理

    你知道我最喜欢引人注目的 javascript 的什么吗 当你触发一个事件时 你总是知道它会做什么 a a 现在每个人都在喝这种不引人注目的酷爱饮料 这一点就不那么明显了 对绑定事件的调用可以发生在页面中包含的任意数量的 javascrip
  • 使用异步函数等待 onclick 的用户输入

    我是异步新手 也许只是不了解基础知识 但我试图通过调用弹出模式并等待用户提交数据的异步函数来等待来自 onclick 的用户输入 在找到一两个甚至提到使用异步等待页面事件的来源后 这对我的特定任务并不是特别有帮助 我想出了这个 asnyc
  • 删除鼠标悬停时的 Vue 自定义过滤器

    我想使用 VueJS 2 删除鼠标悬停时的截断过滤器 这是模板中的过滤器 div class eng word english truncate div 这是过滤器本身 filters truncate function value let
  • 访问事件处理程序内的对象实例

    我有以下代码 var myObj inputs document getElementsByTagName input attachKeyEvent function for var i 0 i lt this inputs length

随机推荐

  • 使用 DateTime.strptime 时不考虑 Rails 夏令时

    我一直致力于解析字符串 并且有一个测试用例给我带来了问题 使用 strptime 解析日期 时间字符串时 不考虑夏令时 据我所知 这是一个错误 我找不到有关此错误的任何文档 这是 Rails 控制台中的一个测试用例 这是 ruby 1 9
  • 将带名称和不带名称的命名空间添加到 XElement

    我需要生成如下 XML
  • 使用多处理来查找网络路径

    我目前正在使用 networkx 函数 all simple paths 来查找网络 G 中给定的一组源节点和目标节点的所有路径 在更大 更密集的网络上 这个过程非常密集 我想知道是否可以使用多处理来解决这个问题 以及是否有人对如何通过创建
  • 嵌入式领域“软复位”和“硬复位”有什么区别?

    在我看来 软复位 从复位向量启动 硬重置 拉cpu的电平 硬复位当然意味着整个CPU芯片及其所有外设都被复位 造成这种情况的原因可能有很多 复位引脚被外部拉动 时钟故障 片上低电压检测 看门狗 非法指令陷阱等 软复位可能意味着返回复位向量的
  • 只要父文件夹中尚不存在任何文件,就将所有文件从“旧”文件夹移至父文件夹中

    只要父文件夹中尚不存在文件 我的代码就应将所有文件从 旧 文件夹移至父文件夹中 Folder 1 old somefiles 2 old somefiles 3 old somefiles Folder 1 somefiles old 2
  • 在elasticsearch中创建TransportClient时限制ThreadPool中的线程数

    我正在 elasticsearch 中创建一个 TransportClient 实例 下面是相同的代码 问题是我试图减少 TransportClient 启动的线程池生成的线程数 但无论我使用什么设置 我的elasticsearch总是用1
  • Delphi 按钮在 Aero 玻璃上显示白色边框

    我一直在尝试在 Delphi 2010 中使用 Aero 来找到一个好看的设计 人们看到的一个明显的用途是玻璃框架被扩展以包括屏幕底部的 确定 取消 按钮 我注意到 这在 Delphi 2010 中看起来不太正确 每个按钮周围都有一个白色边
  • 将字符串转换为 TextView

    String data tv 另外 在我的 xml 文件中 我有一个名为 tv1 的 TextView 我已经在 Activity 中投射了 textView TextView tv1 TextView findViewById R id
  • Windows 中的 msync 等效项

    Windows 中的 rsync unix 系统调用 相当于什么 我正在寻找 C C 空间中的 MSDN api 有关 msync 的更多信息 请访问http opengroup org onlinepubs 007908799 xsh m
  • 如何在 Android 的 SQLite 查询中使用 LIMIT 参数

    我正在尝试使用以下查询来获取按日期列出的最新结果 Cursor cursor mDb query DATABASE TABLE new String KEY DATE KEY REPS KEY WEIGHT null null null n
  • 从 ZIP 字符串中提取文件

    我有一个 BASE64 字符串的 zip 文件 其中包含一个 XML 文件 关于如何获取 XML 文件的内容而无需处理磁盘上的文件 有什么想法吗 我非常希望将整个过程保留在内存中 因为 XML 只有 1 5k 必须编写 zip 提取 XML
  • 查询优化——花费太长时间并停止服务器

    我的查询生成一些有关超速 上次时间和平均速度的报告 这是我的查询 Select r1 r2 name r2 notes r2 serial From SELECT k idgps unit MIN k dt AS DT Start MIN
  • 计算未排序数据中唯一对和非唯一对实例的数量

    我有以下形式的数据 ID ATTR 3 10 1 20 1 20 4 30 其中 ID 和 Attr 未排序并且可能包含重复项 ID的范围是1 20 000左右 ATTR是unsigned int 我可能需要一次处理 100 000 到 5
  • IE 的 toLocaleString 结果中有奇怪的字符

    我遇到了一个超级奇怪的事情 显然是 IE 特定的toLocaleString关于日期 在 IE 控制台窗口中 new Date 2014 08 28T20 51 09 9190106Z toLocaleString 8 28 2014 1
  • 无法重写prefersHomeIndicatorAutoHidden()方法

    我在 XCode 10 的应用程序中使用这行代码 以便调暗 iPhone X 和相关无边苹果设备上的主页指示灯 override func prefersHomeIndicatorAutoHidden gt Bool return true
  • 计算 Pandas 数据框中的不同单词数

    我有一个 Pandas 数据框 其中一列包含文本 我想获得整个列中出现的唯一单词的列表 空格是唯一的分割 import pandas as pd r1 My nickname is ft jgt Someone is going to my
  • 使用 JQuery 访问 ASP.net Web 服务时出错 - JSONP

    请查看下面的代码并帮助我找出我的网络服务代码中做错了什么 我想设置一个可以使用 JSONP 来使用的 asp net Web 服务 我在客户端使用 Jquery 来访问该网站 即使在设置了正确的属性之后 我的 Web 服务仍然会发出 xml
  • PHPExcel 字符串到时间

    我创建了一个 Excel 电子表格 在第二列中我有类似的值0 11 23 and 2 03 33 价值数千行 我使用 PHP 将格式设置为 sheet gt getStyle colRange gt getNumberFormat gt s
  • bash脚本中的mvn if语句

    我想在 bash 脚本中运行命令 mvn clean 但我想把它放在 if 语句中 如果 clean 无法正常运行 我想使用 echo 语句退出 bash 脚本 这是导致问题的代码 如果 mvn clean 然后 我尝试将 mvn clea
  • 取消内联剑道网格中的更新删除行

    我正在使用两个剑道内联网格父级和子级 子网格包含产品列表 当用户从子网格中选择产品 多项选择 并单击保存按钮时 它将插入到父网格中 子网格 var selectedIds var ctlGrid KendoWebDataGrid3 ctlG