簡體   English   中英

如何從primefaces數據表中刪除/取消綁定rowSelect事件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM