slickgridはかなり良いです!切断モードでは、ユーザーはいくつかの変更を行います。ジョブが完了すると、変更はサーバーに保存されます。データベースを更新する便利な方法があるかどうか知りたいのですが。データビューには最新のデータが含まれていますが、読み込み後に発生した変更(削除された行など)を認識していますか、それとも自分で変更を追跡する必要がありますか?
2 に答える
onCellChanged イベントまたはカスタム editCommandHandler を使用して行をダーティとしてマークし、Ajax 呼び出しを行ってそれらの行を更新することができます。より高度な同期はすべてあなた次第です。SlickGrid にはそのためのヘルパーがありません。
可能な場合は onCellChanged イベントを使用しても問題ありませんでした。
今、onSelectedRowsChanged イベントを使用して、削除する行の行 ID を取得しようとしています。
ただし、 grid.getSelectedRows() は現在のページの行番号のみを返します。そのため、グリッドがフィルター処理されているか、最初のページが表示されていない場合に行 ID を取得するのに問題があります。
現在のビューを管理するデータセットがあると思いますが、見つかりません。
では、現在のビューに従って行番号から行 ID を取得するための最良の解決策は何ですか? よろしく
更新:
最後に選択された行の行 ID を返す関数を grid.js で作成することで、最終的に気が変わりました (1 行のみの削除を許可する配列ではありません)。
"getSelectedRowID": getSelectedRowID,
私はこのように使用します:
-> 現在の行 ID を取得
grid.onSelectedRowsChanged = function (e, args) {
currentID = grid.getSelectedRowID();
.....
}
-> 削除キーが押された場合、この行を削除します
grid.onKeyDown = function (e) {
// delete key
if (e.keyCode == 46) {
if (confirm('confirmez-vous la suppression de la ligne : ' + currentID)) {
dataView.deleteItem(currentID);
deletedRowIds.push(currentID);
}
return true;
}
....