0

我想为我的 slickgrid 中的列编写一个自定义编辑器。理想情况下,此编辑器将包含另一个允许用户过滤和选择多个项目的 slickgrid。

  • 有没有人尝试过编写一个包含另一个 slickgrid 实例的编辑器?
  • 有什么我应该避免的问题吗?
4

1 回答 1

1

我们刚刚完成了这项工作,我们在 SlickGrid v1.4.3 中发现的问题是,您会遇到两个光滑网格的问题,因为它们共享 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 回答