如何在每次点击p:selectOneMenu箭头图标时停止触发ajax事件?

时间:2013-10-25 12:38:51

标签: ajax jsf-2 primefaces

我在p:datatable中的数据表+ onOowSelect事件中有一个p:selectOneMenu标记。我的问题是每次单击选择菜单右侧图标内的向下箭头时,rowSelect事件都会被触发。当然,有些人会重新渲染,所以菜单会在眨眼之间打开,然后在重新渲染时再次关闭。当我点击选择菜单的主体时,不会发生这个问题,这当然是不可接受的。有任何想法吗?我可以用h:selectOneMenu替换,它行为正常并且不会触发选择。但是我需要p:selectOneMenu的过滤属性。

以下是代码示例:

<p:dataTable  id="inParametersDataTable" selection="#{wFDesignBean.selectedParameter}"
                                              selectionMode="single" rowKey="#{p.parameterDefinitionModel.parameterId}"
                                              value="#{wFDesignBean.selectedActivityModel.inParameterModels}"
                                              style="height: 100%; " var="p" >
                                    <p:ajax global="false" event="rowSelect" listener="#{wFDesignBean.loadSelectedParameter}"
                                            update=":cont:tabView:bottomTabView" />
                                    <p:ajax global="false" event="rowUnselect" listener="#{wFDesignBean.clearAllParameterChoices()}" update=":cont:tabView:bottomTabView"/>

                                    <f:facet id="facetId" name="header" >
                                        <h:commandButton  id="addNewParam" label="Add New Input Parameter" image="/styling/images/add.png" style="height:15px;" >
                                            <p:ajax global="false" event="click" listener="#{wFDesignBean.addInParameterToSelectedActivity}" update="inParametersDataTable"/>
                                        </h:commandButton> &nbsp;
                                        <h:commandButton label="Reload current parameters list" image="/styling/images/refresh.png" style="height:15px;" >
                                            <p:ajax event="click" listener="#{wFDesignBean.reloadParameters()}" update="inParametersDataTable"/>
                                        </h:commandButton>&nbsp;
                                        <h:commandButton label="Create a new parameter" image="/styling/images/createNew.png" style="height:15px;" >
                                            <p:ajax global="false" event="click"  listener="#{navigationBean.showParametersDialog}" update=":cont:tabView:bottomTabView"/>
                                        </h:commandButton>
                                    </f:facet>
                                    <p:column>
                                        <h:commandButton   id="delete" image="/styling/images/Delete-icon.png" style="height:15px;">
                                            <p:ajax global="false" event="click"  listener="#{wFDesignBean.removeInParam(p)}" update=":cont:tabView:bottomTabView"/>
                                        </h:commandButton>
                                    </p:column>
                                    <p:column headerText="Parameter Name">
                                        <h:selectOneMenu id="paramValues"  value="#{p.parameterDefinitionModel.parameterId}" >
                                            <f:selectItem itemValue="#{wFDesignBean.defaultDropDownValue}" itemLabel="--Select Parameter--"/>
                                            <f:selectItems value ="#{wFDesignBean.paramSourceDef}" var="pra" itemLabel="#{pra.parameter_Name}" itemValue="#{pra.parameter_ID}"/>
                                            <p:ajax event="change" listener="#{wFDesignBean.loadSelectedParameterDefinitionData(p.parameterDefinitionModel.parameterId)}" update=":cont:tabView:bottomTabView" />
                                        </h:selectOneMenu>
                                    </p:column>
                                    <p:column headerText="Data Source">
                                        <h:selectOneMenu id="ddsValues" value="#{p.parameterSourceId}">
                                            <f:selectItem itemLabel="None" itemValue="0"/>
                                            <f:selectItems value ="#{wFDesignBean.dataSourceValues}" var="ds" itemLabel="#{ds.lookupValue}" itemValue="#{ds.lookupId}"/>
                                            <p:ajax global="false" event="change" listener="#{wFDesignBean.handleParameterChoices(p)}" update=":cont:tabView:bottomTabView"/>
                                        </h:selectOneMenu>
                                    </p:column>
                                    <p:column headerText="Is Optional">
                                        <h:selectOneMenu id="isOptional" value="#{p.isOptional}">
                                            <f:selectItems value ="#{wFDesignBean.isOptionalLookUp}" var="optional" itemLabel="#{optional.lookupValue}" itemValue="#{optional.lookupId}"/>
                                            <p:ajax global="false" event="change" update=":cont:tabView:bottomTabView"/>
                                        </h:selectOneMenu>
                                    </p:column>
                                    <p:column headerText="Already built">
                                        <h:selectBooleanCheckbox value="#{p.isAlreadyBuiltBool}">
                                            <p:ajax global="false" listener="#{wFDesignBean.setAlreadyBuilt()}"/>
                                        </h:selectBooleanCheckbox>
                                    </p:column>
                                </p:dataTable>

0 个答案:

没有答案