如何在primefaces中禁用数据表的行选择

时间:2014-03-21 09:20:35

标签: jquery jsf primefaces datatables

我使用的是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论坛获得了一些解决方案但无法解决。请告诉我需要做什么。

2 个答案:

答案 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

这可能不是一个好的解决方案,但至少它可行。