ユーザー名、電子メール、有効、ロック、および削除の 5 つの列を持つグリッドがあります。
ユーザー名、電子メール、有効およびロックはサーバーから供給されます。Remove は、行を削除する必要があることを示すために使用されるクライアント側の要素です。
グリッド コンテンツの読み込み中にクライアント側のストアに remove のデフォルト値を挿入するか、ユーザーが CheckBox ウィジェットを操作するときにそれを設定したいと考えています。
サーバーからオブジェクトを要求しているコードをキャッチして、別の列を追加するにはどうすればよいですか?
または、これを行うためのより良い方法はありますか。
var TrackableRest = declare([Rest, SimpleQuery, Trackable]);
var store = new TrackableRest({target: '/api/users', useRangeHeaders: true, idProperty: 'username'});
aspect.after(store, "fetch", function (deferred) {
return deferred.then(function (response) {
response.remove = false;
return json(response);
})
});
var grid = new (declare([OnDemandGrid, Selection, Editor]))({
collection: store,
className: "dgrid-autoheight",
columns: {
username: {
label: core.username
},
email: {
label: core.email
},
enabled: {
label: core.enabled,
editor: CheckBox,
editOn: "click",
sortable: false,
renderCell: libGrid.renderGridCheckbox
},
locked: {
label: core.locked,
editor: CheckBox,
editOn: "click",
sortable: false,
renderCell: libGrid.renderGridCheckbox
},
remove: {
editor: CheckBox,
editorArgs: {"checked": false},
editOn: "click",
label: core.remove,
sortable: false,
className: "remove-cb",
renderHeaderCell: function (node) {
var inp = domConstruct.create("input", {id: "cb-all", type: "checkbox"});
return inp;
},
renderCell: libGrid.renderGridCheckbox
}
},
selectionMode: "none"
}, 'grid');
さらに、削除列をサーバーに送信したくありません。