【发布时间】:2014-01-21 00:58:28
【问题描述】:
我的主要问题是我想删除/取消绑定 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.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>
两者都不适合我。任何人都可以帮我解决这个问题。
先谢谢各位了
【问题讨论】:
-
很难理解你想做什么?
-
@Makky 我已经编辑了这个问题。我相信现在可以理解了。请让我知道你仍然无法理解它。感谢您的回复。
-
我坚信
p:column selectionMode="multiple"应该禁用行单击选择,仅对复选框启用它。然而,这似乎不是他们的优先事项code.google.com/p/primefaces/issues/detail?id=5206 -
@XtremeBiker 感谢您的链接,正如专家在链接中评论的那样,我们的项目不能作为 Pro。
标签: jquery jsf jsf-2 primefaces