我的要求是遍历网格的所有选定行,并在数据源上设置一个具有给定值的字段。我有以下代码并遍历 kendo ui 网格的选定行。
$('#grid').data("kendoGrid").select().each(function () {
if($('#grid').data().kendoGrid.dataSource.data()[$(this).index()] != null ){
var myItem = $('#grid').data().kendoGrid.dataSource.data()[$(this).index()];
myItem.set(myFiled, myValue);
leg.push(myItem);
}
});
问题是,在我的代码到达 myItem.set(myFiled, myValue); 行之后 索引得到值 -1 并且即使在我的下一次迭代中它也会保持这个值。
删除 .set 方法时,我发现我没有相同的行为,并且我的索引保持正确的值。为什么会这样?
此外,这行之间有什么区别:
i) $('#grid').data("kendoGrid").dataItem($(this)).set(myField, myValue);
ii) $('#grid').data().kendoGrid.dataSource.data()[$(this).index()].set(myField, myValue);
我知道第一个与网格上的值有关。不幸的是,我从未设法设置 (i) 所示的值。第 (i) 行显示的代码似乎根本不适用于 set 函数。
我从这里拿了我的例子Refresh a single Kendo grid row and Kendo-UI grid Set Value in grid with Javascript for case (i) and (ii) 。