<p:selectonemenu> onChange事件没有重新加载表格</p:selectonemenu>

时间:2014-06-30 12:33:24

标签: events jsf-2 primefaces onchange

我尝试使用selectOneMenu的onChange事件,但它不起作用,并且在我添加onChange attribue时所选择的数据不会重新加载表单。

有人能告诉我如何处理onChange事件?

以下是我的观点:

<p:panel id="cubeId" header="Cube" widgetVar="toggleable>
<h:form id="CubeIdForm">
    <p:panelGrid columns="2">
        <p:outputLabel value="Cube Name: "></p:outputLabel>
    <p:inputText value="#{cubeMan.cub.name_cube}"></p:inputText>
        <p:outputLabel value="Description: "></p:outputLabel>
    <p:inputText value="#{cubeMan.cub.description_cube}"></p:inputText>
        <p:outputLabel value="Caption: "></p:outputLabel>
    <p:inputText value="#{cubeMan.cub.caption_cube}"></p:inputText>
        <p:outputLabel value="Cache: "></p:outputLabel>
    <p:selectBooleanCheckbox value="#{cubeMan.cub.cache}"></p:selectBooleanCheckbox>
        <p:outputLabel value="Enabled : "></p:outputLabel>
    <p:selectBooleanCheckbox value="#{cubeMan.cub.enabled}"
        label="Activate Cube"></p:selectBooleanCheckbox>
        <p:outputLabel value="Visible : "></p:outputLabel>
    <p:selectBooleanCheckbox value="#{cubeMan.cub.visible}"></p:selectBooleanCheckbox>

<p:outputLabel value="Select Column: " />
    <p:selectOneMenu value="#{cubeMan.name_cube}" id="cat">
        <f:selectItem itemLabel="Select Column" itemValue="" />
        <f:selectItems value="#{cubeMan.getColumnName()}" />

    </p:selectOneMenu>
<p:outputLabel value="Select Cube: " />
    <p:selectOneMenu value="#{cubeMan.name_cube}" id="cub">
        <f:selectItem itemLabel="Select Cube" itemValue="" />
        <f:selectItems value="#{cubeMan.AllCubs()}" />
<p:ajax event="change" listener="#{cubeMan.dUpdateCube}" update="@this" />

</p:selectOneMenu>
</p:panelGrid>
<p:commandButton value="Add" action="#{cubeMan.makeCube()}" update="@form">
<p:commandButton action="#{cubeMan.handleCube()}" /></p:commandButton>

                            </h:form>

                        </p:panel>

这是请求范围bean中的方法:

public void dUpdateCube(AjaxBehaviorEvent event){

    cubeService.update_cube(cub);

}

public void handleCube() {  
    cubeService.update_cube(cub);
}

但是,当我更改菜单时,没有打印任何内容。

这是如何引起的?如何解决?

2 个答案:

答案 0 :(得分:1)

我认为你在谈论selectOneMenuid="cub"。 您必须更改update - 元素的p:ajax的值。使用您当前的设置无法更新。请尝试以下操作来更新整个表单:

<p:ajax event="change" listener="#{cubeMan.dUpdateCube}" update="@form" />

答案 1 :(得分:0)

我认为我应该有这样的事情:

<p:selectOneMenu id="sistema" label="Sistema" value="#{searchSchedulingBean.selectedSystem}">
    <p:ajax listener="#{searchSchedulingBean.systemChangeListener}" 
        process="@this"
        event="change"
        update="autostrada"/>
    <f:selectItems value="#{searchSchedulingBean.systemsList}" />
</p:selectOneMenu>

但是我不知道我应该为selectedSystem()以及systemChangeListener()的方法编码什么,所以你可以帮我编写这两种方法。