模拟onclick事件选项列表primefaces

时间:2013-07-12 06:32:36

标签: events primefaces onselect picklist

我知道,主要选项列表只能转移事件,如

<p:ajax event="transfer" listener="#{bean.onTransfer}" />

但我正在寻找一个onTargetSelected事件。有没有办法模拟它?

我想到了一个与click事件绑定的JQuery函数,但我不知道哪个元素。我看到当我在目标列表中选择一行时,li的类正在转换为ui-state-highlight。有没有办法用JQuery检测类更改?

要在触发事件时调用bean方法,我想到了primefaces remoteCommand来发送我的对象的ID。

您对此事件有所了解吗?

注意:我看到源代码中有一个带有目标值的选择,但每个项目的选定值都是“已选中”,我不知道是否与此有关。

感谢您的帮助

1 个答案:

答案 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
}