0

在使用 contextMenu(右键单击)和表选择(左键单击)时,两者都在维护两个单独的行单击对象。我想在 PrimeNG-tree 表中执行以下任务,请帮帮我:

  • 左键单击选择第一行。
  • 按 Ctrl 键并左键单击选择第二行。
  • 按 Ctrl 键并右键单击选择第三行并打开上下文菜单。

预期结果:

  • 为所有三行保持相同的选择样式。
  • 获取所有选定对象的数组。

实际结果:

  • 为左右单击独立维护两种不同的样式。
  • 它为左键单击生成一个对象数组,并为右键单击生成一个单独的独立对象(不是数组)。

右键单击不允许多选。

4

1 回答 1

0

我只是想知道同样的问题,并想出了一些解决方法。

有一个样式类“ui-contextmenu-selected”通过右键单击添加到选定的行。使用事件 onContextMenuSelect 您可以从行中删除该类并使用常用方式选择行(我假设您有一个变量“selectedRow”,所以您唯一需要做的就是将行数据添加到您的 selectedRow var )

这里棘手的部分只是从选定的上下文行数据中过滤并到达 HTML 行,使用一点 JQuery 并不难。

编辑:这是我在事件触发函数中所做的

unselectContextRow( row ) {
this.selectedRow = row.data;
setTimeout(()=>{
    $('.ui-contextmenu-selected').removeClass('ui-contextmenu-selected');
})
}

此代码适用于单选,如果你想让它与多个一起使用,你只需要处理数组。

于 2018-07-04T08:41:26.687 回答