我的主要问题是我想从数据表中删除/取消绑定rowSelect、rowUnselect和rowDblselect事件
。
<p:dataTable id="myTable" value="#{myBean.myLazyModel}" var="var"
selection="#{myBean.selectedBean}" styleClass="uta-table lightgrey-table">
<p:column selectionMode="multiple" id="select"
style="width:2%;text-align:center" />
<p:column id="namecol" headerText="Name" style="text-align:center">
<p:inputText id="name" value="#{var.name}"
styleClass="uta-textbox" style="text-align:center">
</p:inputText>
</p:column>
</p:dataTable>
假设数据表只有5行。现在,我通过选择复选框(而不是点击行)选择了前4行。如果我通过单击该行来选择第5行(不选择复选框),则之前的4行将被取消选择,导致仅第5行被选择。这是我的委托人关心的事情。
为了避免这个问题,我想取消绑定/删除rowSelect事件意味着我应该只能通过选择复选框来选择一行。同样的问题也存在于primeface展示中。
http://www . prime faces . org/showcase/ui/datatablerowselectionradiocheckbox . JSF
我尝试使用jQuery css选择器以以下两种方式解除绑定/移除rowSelect事件
<script type="text/javascript">
jQuery(function() {
$('.lightgrey-table').off("rowSelect");
$('.lightgrey-table').off("rowUnselect");
$('.lightgrey-table').off("rowDblselect");
});
</script>
第二种方式
<script type="text/javascript">
jQuery(function() {
$('.lightgrey-table').unbind("rowSelect");
$('.lightgrey-table').unbind("rowUnselect");
$('.lightgrey-table').unbind("rowDblselect");
});
</script>
两者对我都不起作用。谁能帮我解决这个问题。
提前感谢伙计们
您可以这样设计您的列
<p:datatable ...
<p:column selectRow="false" ... />
</p:datatable>
这样,您只能通过单击复选框来选择和取消选择您的行。
这并不明显,但按 CTRL 键将允许选择多行,而不会影响已选择的行。
如果< kbd>CTRL键选项对您的客户端不起作用,您需要重新打开jQuery '$ '快捷方式,以便在PrimeFaces应用程序上使用它。包括以下JSF输出脚本标记:
<h:outputScript library="primefaces" name="jquery/jquery.js" target="head" />
<h:outputScript target="head">
$ = jQuery; // Put $ back so we can use jQuery in the default mode.
$(document).ready(function() {
// put your jQuery code here....
}); </h:outputScript>