我正在使用 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/