我使用的是Primefaces 4.0, 我有一个具有多个选择功能的数据表。我愿意实现的是仅通过复选框按钮选择行,禁用单击行的功能。在目前的情况下,我的复选框被选中,即使我点击任何一行,我想禁用行选择。
<p:dataTable id="tradingTable" scrollable="true"
resizableColumns="true" draggableColumns="true" scrollWidth="1265"
scrollHeight="650" var="pgers"
selection="#{pager.selectedPageArray}"
value="#{pager.pageDataModel}"
sortMode="multiple"
editable="true" editMode="cell"
rowSelectMode="add"
>
<p:column width="30" selectionMode="multiple" >
</p:column>
我从this论坛获得了一些解决方案但无法解决。请告诉我需要做什么。
答案 0 :(得分:8)
虽然你的问题是关于Primefaces 4.0的,但我认为强调现在这个问题在新版本中得到解决会很有用。它可能对其他人有用。
根据此feature request,Primefaces版本 5.0.3 &amp;只需添加rowSelectMode =&#34;复选框&#34; 5.1 到数据表。
文档参考(PF 5.1):
使用rowSelectMode选项自定义行上的默认行为 单击启用多选的数据表。默认值是 &#34;新&#34;清除以前的选择,&#34;添加&#34;模式保持先前 选项与在启用metakey时通过鼠标单击选择行相同 和&#34;复选框&#34;模式允许仅使用复选框进行行选择。
答案 1 :(得分:0)
我使用的是PrimeFaces 3.5,但我认为同样的解决方法应该适用 我禁用行选择的方法是remove the selected row immediately with the rowSelect event by adding <p:ajax /> component in the datatable。
这可能不是一个好的解决方案,但至少它可行。