0

我的 HTML 页面中有一个简单的 jsGrid。我将网格配置为仅启用对 Employee ID 列的编辑。我还在我的脚本中实现了 onItemUpdated 回调,这样当员工 ID 更新时,它将触发回调并调用 Web 服务来检索员工信息(例如,姓名和地址)。Web 服务响应结果后,将分别使用 jsGrid updateItem API 更新项目名称和地址。

问题是在事件触发后,它对回调执行递归调用,因为 updateItem API 还会再次重新触发 onItemUpdated 回调。

           onItemUpdated: function (args) {
                console.log(args.item);

                // edit the item.
                $("#jsGrid").jsGrid("updateItem", args.item, {
                    Id: args.item.Id,
                    EmployeeId: args.item.EmployeeId,
                    EmployeeName: "Benjamin",
                    CostCenter: "1234",
                    Department: "ITS Department"
                });
            },

希望你能帮助我解决这个问题的更好策略。

谢谢!

4

1 回答 1

1

onItemUpdated回调通常用于在更新项目时进行一些额外的处理。对于基本的更新场景,您只需controller.updateItem在配置中定义。网格的更新将自动发生。

$("#jsGrid").jsGrid({
    ...,

    controller: {
        loadData: function() {
            // retriving data request
            return $.ajax({ ... });
        },

        updateItem: function(item) {
            // updating data request
            return $.ajax({
                url: "http://myresource/api/items"
                type: "PUT",
                data: item
            });
        }
    }

});
于 2016-07-07T23:51:44.327 回答