0

HTML ページに単純な jsGrid があります。従業員 ID 列のみを編集できるようにグリッドを構成しました。また、スクリプトに onItemUpdated コールバックを実装して、従業員 ID が更新されたときにコールバックをトリガーし、Web サービスを呼び出して従業員情報 (名前や住所など) を取得するようにしました。Web サービスが結果に応答した後、jsGrid updateItem API を使用して、アイテムの Name と Address をそれぞれ更新します。

問題は、イベントがトリガーされた後、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 に答える