RowSelect事件p:dataTable

时间:2012-02-21 05:28:06

标签: jsf primefaces

需要捕获具有基于复选框的行选择的dataTable的rowSelect事件。 代码如下:

<p:ajax event="rowSelect" listener="#{articleBean.onRowSelect}"
                    oncomplete="articleBean.onSelection" />
<p:ajax event="rowUnselect" listener="#{articleBean.onRowUnselect}"
                    oncomplete="articleBean.onSelection" />
<p:column id="name" headerText="Select" selectionMode="multiple"
                    style="width:18px" />

我无法理解这种行为。当我第一次单击复选框时,将调用方法“onRowSelect”。当我取消选择时,“onRowUnselect”不会被调用。而且,“onRowSelect”方法只为网格调用一次,如果我单击任何其他复选框,则事件不会被触发。我错过了什么吗?无法理解这种行为。

1 个答案:

答案 0 :(得分:16)

当您使用带有基于复选框的行选择的dataTable时,您应该替换:

<p:ajax event="rowSelect"
<p:ajax event="rowUnselect"

以下内容:

<p:ajax event="rowSelectCheckbox"
<p:ajax event="rowUnselectCheckbox"