javascript - 单击 Primefaces 数据表中的其他行时不要取消选择行

标签 javascript jsf primefaces

我正在使用 Primefaces 3.5 数据表。该表启用了多选模式。基本上,该表与[此展示][1]中的最后一张表相同。所以表是这样定义的

<p:dataTable id="myTable" var="item" value="#{myController.items}" selection="#{myController.selectedItems}" rowKey="#{item.id}">
        <p:column selectionMode="multiple"/>
        <p:column headerText="Id"> 
...

因此,当用户通过单击复选框选择某些行,然后意外单击某一行时,除了用户最后单击的行之外,所有选定的行都将变为未选中状态。

问题是:即使用户单击复选框之外的行,是否有任何解决方法可以保持选定的行?

我的一些观察:

  • 如果用户按 Ctrl 并单击该行,则所有其他行将保持选中状态。这种行为正是我想要的,但无需按 Ctrl
  • 我查看了 primefaces.js 源代码,发现此函数 clearSelection:function(){} 取消了其他行的选择。当用户单击行时不执行它就可以了。

最佳答案

如果您阅读最新的文档,您会发现较新的版本支持它。因此,要在 3.5 中修复此问题,请查看较新版本的源代码,了解他们如何“修复”此问题并创建 js 补丁……您当然也可以尝试使用较新的 PF 版本。执行后者有很多优点。

在此处发布(或什至尝试创建)补丁(或尝试创建补丁)的原因是,在此处发布补丁非常复杂,而且我认为超出了 SO 的范围

关于javascript - 单击 Primefaces 数据表中的其他行时不要取消选择行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31591407/

相关文章:

css - 如何删除 PrimeFaces 对话框中的滚动条?

jsf - 如何转换p :signature value to an image (or other serialised form)

javascript - 在 HTML 中遍历 map

javascript - 仅当整个文本适合时才显示 p 元素

javascript - Ionic 3 在运行功能之前等待存储 promise 完全完成

java - 更改数据表选择上的输入文本 JSF 2.2/Primefaces

javascript - 获取由 css column-width 创建的列数

jsf - 组件 ID j_id? :name has already been found in the view

ajax - 如何添加 f :ajax tag to an h:link?

ajax - PrimeFaces:验证时的条件更新