提问者:小点点

如何从primefaces数据表中移除/解除绑定rowSelect事件


我的主要问题是我想从数据表中删除/取消绑定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>  

两者对我都不起作用。谁能帮我解决这个问题。

提前感谢伙计们


共2个答案

匿名用户

您可以这样设计您的列

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