Jquery 如何动态更改剑道ui网格中的值

Jquery 如何动态更改剑道ui网格中的值,jquery,kendo-ui,kendo-grid,Jquery,Kendo Ui,Kendo Grid,我正在使用剑道ui网格。在这种情况下,我使用了批处理模式来保存值。如果我更改了一行中的记录,那么相应行的值也将更改,当我们单击save时,两个字段都将保存到数据库中 例如,我有一个网格,如: Integer Value 1 First 2 Second 3 Third 4 Fourth 如果我将值1更改为4,那么4将更改,并且值也会动态更改。我的意思是我想在这里交换1和4。我也可以改变 保留所有字

我正在使用剑道ui网格。在这种情况下,我使用了批处理模式来保存值。如果我更改了一行中的记录,那么相应行的值也将更改,当我们单击save时,两个字段都将保存到数据库中

例如,我有一个网格,如:

  Integer    Value
   1         First
   2         Second
   3         Third
   4         Fourth
如果我将值1更改为4,那么4将更改,并且值也会动态更改。我的意思是我想在这里交换1和4。我也可以改变 保留所有字段,但最后必须将所有记录保存到数据库中。我已经试过了

此代码将位于网格更改功能中

 var grid = $('#grid').data("kendoGrid");
 var selectedRow = grid.select();
 var selectedRowIndex = selectedRow.index();
 console.log(selectedRowIndex);

 var firstItem = dataSource.data()[selectedRowIndex];

 var datalength = dataSource.data();
 for (var i = 0; i < datalength.length; i++)
   {
     var dataItem = datalength[i].id;
     if (dataItem == firstItem.get('id'))
       {                                
         var secondItem = dataSource.data()[i];                                
         secondItem.set('id', dataItem);                               
       }
   }

然后,值会发生更改,但更改后的值不会传递给控制器

如果要直接播放数据,需要将更改的记录标记为脏记录

 dataSource.data()[changedIndex].dirty = true;
 dataSource.sync();

只需设置剑道网格中数据的值

$my_grid.datakendoGrid.dataSource.data[rowindex].columnName=newValue

在我的项目中,我通过下拉更改更改了列名为fclty_cd的剑道网格行的值

我写道:

 function onChange(e) {
    var fromContactNumber = parseFloat($('#fromContactNumber').val());
    var toContactNumber = parseFloat($('#toContactNumber').val());
    var length = $('#grid table tr[role=row]').length;
    var faculty = $('#ddl_Faculty').val();
    for (var i = 1; i < length; i++) {
        var num = parseFloat($($('#grid table tr[role=row]')[i]).find("td")[4].innerText);
        if (num >= fromContactNumber && num <= toContactNumber) {
            $("#grid").data("kendoGrid").dataSource.data()[i - 1].fclty_cd = faculty;
            $($($('#grid table tr[role=row]')[i]).find("td")[11]).text(faculty);
        }
    }
}
此行仅更改UI值: $$$'网格表tr[role=row]'[i].findtd[11].textfaculty

此行更改剑道数据网格内的值:
$my_grid.datakendoGrid.dataSource.data[rowindex].columnName=newValue

多谢各位。我们能知道在剑道ui网格的保存事件中更改了哪一个吗?对不起,我没听清你的问题吗?@patcapozzi很抱歉听到这个消息!你这么说是因为你对不出现错误感兴趣,或者因为你只是在上下文之外复制和粘贴了这两行,或者如果第一行失败了,或者剑道框架在过去两年中发生了变化,你怎么可能在第二行出现错误。分享一把小提琴,我真的很好奇!我在调用sync时收到一个错误。小提琴在这里。在fiddle中,changeData首先尝试使用成功的方法更改数据,然后尝试使用此答案更改数据。认识到这可能是由于图书馆的变化,但希望有人指向另一个职位,可以帮助。