Javascript 在网格中,触发“选择编辑器时编辑单元格”更改事件

Javascript 在网格中,触发“选择编辑器时编辑单元格”更改事件,javascript,angular,slickgrid,Javascript,Angular,Slickgrid,我使用的是角网格和角网格7。我正在使用内联编辑功能。我使用单选择编辑器进行内联编辑。目前,我希望实现以下功能: 一旦用户单击可编辑字段,选择下拉列表将可见。从选择下拉列表中选择任何选项时,内联模式应存在,列值应更新 目前,我需要单击其他字段以退出内联模式(我希望在选择时实现这一点) 编辑器:{ //为True时显示复选标记图标 enableRenderHtml:true, //tslint:禁用下一行:最大行长度 收藏:[{ 价值:1, 标签:“成功” }, { 价值:2, 标签:“不成功”

我使用的是角网格和角网格7。我正在使用内联编辑功能。我使用单选择编辑器进行内联编辑。目前,我希望实现以下功能:

一旦用户单击可编辑字段,选择下拉列表将可见。从选择下拉列表中选择任何选项时,内联模式应存在,列值应更新

目前,我需要单击其他字段以退出内联模式(我希望在选择时实现这一点)

编辑器:{
//为True时显示复选标记图标
enableRenderHtml:true,
//tslint:禁用下一行:最大行长度
收藏:[{
价值:1,
标签:“成功”
}, {
价值:2,
标签:“不成功”
}],
模型:Editors.singleSelect,//CustomSelectEditor
元素选项:{
自动调整下降位置:错误,
onClick:(事件,rr)=>{
//在这里,我想写一些代码,可以触发网格开始更新
}
}
}
通常

grid.getEditorLock().commitCurrentEdit()
将提交并关闭编辑器。 还有

grid.navigateRight()
grid.navigateLeft()
grid.navigateDown()
grid.navigateUp()
grid.navigateNext()
grid.navigatePrev()
将优雅地提交和退出。在
选择2
编辑器中,您会注意到:

    this.init = function () {
      ...

      // Set focus back to select2 element on closing.
      $input.on('select2:close', function (e) {
        if ((e.params.originalSelect2Event && e.params.originalSelect2Event.data) 
        || e.params.key === 9) {
          // item was selected with ENTER or no selection with TAB
          args.grid.navigateNext();
        } else {
          // closed with no selection
          setTimeout(function () {
            $input.select2('focus');
          }, 100);
        }
      });
    };

    this.destroy = function () {
        $input.select2('destroy');
        $input.remove();
    };

,注意,
args.grid.navigateNext()
将提交并关闭编辑器,包括在适当的时间调用
destroy()
方法。

从网格中,示例中有一个复选框,用于
自动提交
,这是您需要在网格选项中启用的设置

this.gridOptions = {
  autoEdit: true,
  autoCommitEdit: true,
}

lib将在内部调用
grid.getEditorLock().commitcurrendedit()
,就像Ben在回答中写的那样,在网格中,您只需设置我添加的
autocommittedit
标志

谢谢大家的回答。我已解决我的问题如下:

   editor: {
      enableRenderHtml: true,
      collection: [{ value: CCLStaus.Sucessfull, label: 'Sucessful' }, { value: CCLStaus.UnSucessfull, label: 'Unsucessful' }],
      model: Editors.singleSelect,// CustomSelectEditor
      elementOptions: {
        onClick: (event) => {
          const updateItem = this.angularSilkGrid.gridService.getDataItemByRowIndex(this.rowInEditMode);
          updateItem.status = +event.value;
          this.angularSilkGrid.gridService.updateItem(updateItem, { highlightRow: false });
          this.angularSilkGrid.gridService.renderGrid();
        }
      }
    }