我想在我的slickgrid中为列编写自定义编辑器。理想情况下,此编辑器将包含另一个允许用户过滤和选择多个项目的slickgrid。
答案 0 :(得分:1)
我们刚刚完成了这个,我们在SlickGrid v1.4.3中发现的问题是,当它们共享GlobalEditorLock状态时,你会遇到两个光滑网格的问题。换句话说,当您从弹出滑动网格中选择一个项目时,它会在您在原始网格中设置的处理程序上触发提交事件。那就是问题。我们通过在handleClick方法中添加一个名为disableEditorCommit的新选项默认为false并更改源来解决这个问题:
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();
我们的popup slickgrid有disableEditorCommit = true,因此它不会与我们在原始网格上设置的编辑器接口。