我有一个剑道网格,其列为:
我为“关闭”按钮编写了一个函数,当用户通过检查选择行并单击“关闭”按钮时,这将自动将 IsClosed Column 更新为“True”
这是我的代码:
$(function () {
$('#btnClose').click(function () {
var grid = $('#grOrders').data("kendoGrid");
$.each($('#grOrders :checkbox:checked').closest('tr'), function () {
var data = grid.dataItem($(this));
data.set("IsClosed", true);
});
});
});
当我测试时,它只更新检查的第一行,不知道为什么?请帮助我。
最佳答案
问题是,一旦您调用 set("IsClosed", true)
KendoUI 就会重绘网格,因此下一个 grid.dataItem
将不会返回您期望的内容.
相反,请尝试执行第一个 each
来获取需要修改的项目列表,然后执行第二个 each
来实际修改它们。像这样的东西:
$('#btnClose').click(function () {
var grid = $('#grid').data("kendoGrid");
var rows = $('#grid :checkbox:checked');
var items = [];
$.each(rows, function () {
var item = grid.dataItem($(this).closest("tr"));
items.push(item);
});
$.each(items, function(idx, elem) {
elem.set("IsClosed", true);
});
});
关于jquery - 如何使用外部按钮更新剑道网格上的多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26727676/