我知道,主要选项列表只能转移事件,如
<p:ajax event="transfer" listener="#{bean.onTransfer}" />
但我正在寻找一个onTargetSelected事件。有没有办法模拟它?
我想到了一个与click事件绑定的JQuery函数,但我不知道哪个元素。我看到当我在目标列表中选择一行时,li的类正在转换为ui-state-highlight。有没有办法用JQuery检测类更改?
要在触发事件时调用bean方法,我想到了primefaces remoteCommand来发送我的对象的ID。
您对此事件有所了解吗?
注意:我看到源代码中有一个带有目标值的选择,但每个项目的选定值都是“已选中”,我不知道是否与此有关。
感谢您的帮助
答案 0 :(得分:0)
我有一个技巧。我正在使用这个JQuery函数:
$(document).ready(function(){
$('.ui-picklist-target .ui-picklist-item td').click(function() {
var id = $(this).closest("li").attr("data-item-value");
$('[id$=selectedItemId]').val(id); // Setting the value of my hidden input
updateSelectedTarget(); // Calling the remoteCommand function
});
});
我已将此添加到我的xhtml页面
<h:form>
...
<p:pickList ...>
</p:pickList>
<h:inputHidden id="selectedItemId" value="#{modifierUOBean.selectedTargetId}"/>
<p:remoteCommand name="updateSelectedTarget" actionListener="#{modifierUOBean.onSelectedTarget}"/>
</h:form>
豆子:
private int selectedTargetId; // and getters and setters
public void onSelectedTarget() {
// Do what you want with selectedTargetId which contains the id of selected item
}