[英]How to remove/unbind rowSelect event from primefaces datatable
我的主要問題是我想刪除/取消綁定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事件意味着我應該只能通過選擇復選框來選擇一行。 同樣的問題也存在於主要展示中。
http://www.primefaces.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>
兩者都不適合我。 任何人都可以幫我解決這個問題。
先謝謝你們
這並不明顯,但按下CTRL鍵將允許選擇多行而不影響已選擇的行。
如果CTRL鍵選項對您的客戶端不起作用,則需要重新啟用jQuery'$'快捷方式以在PrimeFaces應用程序上使用它。 包括以下JSF outputScript標記:
<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>
您可以這樣設計列
<p:datatable ...
<p:column selectRow="false" ... />
</p:datatable>
這樣,您只能通過單擊復選框來選擇和取消選擇行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.