为什么PrimeNG左键单击和右键单击选择是独立工作的?

时间:2018-07-04 05:52:20

标签: primeng primeng-turbotable

虽然使用contextMenu(单击鼠标右键)和表选择(单击鼠标左键)都可以维护行单击的两个独立对象。我想在PrimeNG树表中执行以下任务,帮帮我:

  • 左键单击以选择第一行。
  • 按Ctrl键,然后单击鼠标左键选择第二行。
  • 按Ctrl键并右键单击以选择第三行并打开上下文菜单。

预期结果:

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

实际结果:

  • 分别为左右点击保留两种不同的样式。
  • 它为左键单击选择生成一个对象数组,并为右键单击生成一个单独的独立对象(不是数组)。

右键单击不允许多项选择。

1 个答案:

答案 0 :(得分:0)

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

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

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

编辑:这是我在事件触发功能内所做的

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

该代码适用于单选,如果要使其与多个选择一起使用,您只需要处理数组即可。