0

slickgrid の列のカスタム エディターを作成したいと思います。理想的には、このエディターには、ユーザーが複数のアイテムをフィルターして選択できるようにする別の slickgrid が含まれます。

  • slickgrid の別のインスタンスを含むエディターを作成しようとした人はいますか?
  • 避けるべき落とし穴はありますか?
4

1 に答える 1

1

これを行ったところですが、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があるため、元のグリッドに設定したエディターとは連動しません。

于 2012-07-31T23:49:08.307 に答える