slickgrid の列のカスタム エディターを作成したいと思います。理想的には、このエディターには、ユーザーが複数のアイテムをフィルターして選択できるようにする別の slickgrid が含まれます。
- slickgrid の別のインスタンスを含むエディターを作成しようとした人はいますか?
- 避けるべき落とし穴はありますか?
slickgrid の列のカスタム エディターを作成したいと思います。理想的には、このエディターには、ユーザーが複数のアイテムをフィルターして選択できるようにする別の slickgrid が含まれます。
これを行ったところですが、SlickGrid v1.4.3で見つかった問題は、2つのSlickグリッドがGlobalEditorLock状態を共有しているために問題が発生することです。つまり、ポップアップスリックグリッドからアイテムを選択すると、元のグリッドで設定したハンドラーでコミットイベントが発生します。それが落とし穴です。これを回避するには、disableEditorCommitという新しいオプションをデフォルトでfalseに追加し、handleClickメソッドのソースを変更します。
if (options.enableCellNavigation && !columns[cell].unselectable) {
// if this is a popup then do not commit edits to the global editor
if (options.disableEditorCommit) {
scrollRowIntoView(row,false);
setSelectedCellAndRow($cell[0], (row === defaultGetLength()) || options.autoEdit);
} else {
// commit current edit before proceeding
if (validated === true || (validated === null && options.editorLock.commitCurrentEdit())) {
scrollRowIntoView(row,false);
setSelectedCellAndRow($cell[0], (row === defaultGetLength()) || options.autoEdit);
}
}
}
およびhandleDblClickメソッドの場合:
validated = options.disableEditorCommit ? true : options.editorLock.commitCurrentEdit();
ポップアップslickgridにはdisableEditorCommit=trueがあるため、元のグリッドに設定したエディターとは連動しません。