2017-02-13 7 views
0

カスタムコマンドボタンで行のステータスフィールドを設定しようとしています。グリッドデータソーストランスポートは、このように定義されています剣道のグリッドsaveChanges()が機能しません

function setOfferResponse(grid, sender, response) { 
    sender.preventDefault(); 
    var dataItem = grid.dataItem($(sender.currentTarget).closest("tr")); 
    dataItem.StatusId = response; 
    grid.editRow($(sender.currentTarget).closest("tr")); 
    grid.saveChanges(); 
} 

私は予想:

{ 
    command: [ 
    { 
     name: "accept", 
     visible: function(dataItem) { 
     return dataItem.StatusId === 1; 
     }, 
     text: "@T("Ralfeus.Agent.Accept")", 
     click: function(e) {setOfferResponse(this, e, 2);} 
    } 
    ] 
} 

関数は実際には次のように定義されたフィールドを設定:

transport: { 
    read: { 
    url: "/agent/AgentList", 
    type: "POST", 
    dataType: "json", 
    data: addAntiForgeryToken 
    }, 
    update: { 
    url: "/agent/UpdateAgent", 
    type: "POST", 
    dataType: "json", 
    data: addAntiForgeryToken 
    } 
}, 

カスタムコマンドは、次のように定義されますsaveChanges()データソーストランスポートの更新メソッドをトリガするための呼び出し。ただし、サーバーへの要求もエラーの報告もありません。

また、hereのようにgrid.saveChanges()をgrid.dataSource.sync()に置き換えようとしましたが(ちょっと違います)、結果は同じでした:HTTP要求なし、エラーなし。

+0

@働いていた - >コンソール上の任意のエラーを見ることができますか? –

+0

いいえ、エラーは報告されていません。 – Ralfeus

答えて

1

[OK]をクリックします。プログラムでdataItemフィールドを変更しても、それらが汚れてしまうことはありません。だから私はそれが汚いしなければならなかった:

dataItem.dirty = true; 
grid.saveChanges(); 

そして、それは

関連する問題