如何解决Angular-Slickgrid Select 或 Multiselect 下拉列表在第一次单击时闪烁自动关闭
以下是我正在使用的代码
1.我在 angular slickgrid table 中添加了一个新行,代码如下 const newItem = { id: this.dataset.length + this.index,角色名称:'' };
// add the item to the grid
this.angularGrid.gridService.addItem(newItem);
- 以下是列定义
this.columnDefinitions = [ { id: 'roleName',name: 'Role *',field: 'roleName',sortable: true,类型:FieldType.string,可过滤:true,宽度:80, 编辑:{ 模型:Editors.singleSelect, enableRenderHtml: 真,集合:['1','2','3'], 占位符:'选择一个选项', 集合排序方式:{ 属性:'标签' },} } ]
3.GridOptions 是:
this.gridOptions = {
enableAutoResize: true,
enableCellNavigation: 真,可编辑:真实,
自动编辑:真的,
enableColumnPicker: 真,};
但是可以看到当我在表中添加新行时,如果我快速单击选择元素,它会打开一个下拉菜单几秒钟,然后它会自动关闭。
解决方法
请注意,我是 Angular-Slickgrid 的作者,并且我已经回复了您为同一问题 here 打开的 GitHub 问题。答案是一样的
发生这种情况是因为如果您使用来自 Grid Service 的 addItem
,它会突出显示插入的行 1.5 秒,并通过向该行添加 css 类 1.5 秒并在完成后将其删除来实现这一点。突出显示结束(这是一个 css 动画),当它结束时,它将从任何打开的编辑器中移除焦点。真正的原因是,一旦突出显示它,在 1.5 秒后,它会调用网格的重新渲染(通过 invalidate
),并且因为它重新渲染了整行,所以它删除了编辑器。
所以如果你不喜欢那样,那么你可以简单地删除突出显示
this.angularGrid.gridService.addItem(newRows[0],{ highlightRow: false });
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。