0

データテーブル内に ap:selectOneMenu タグがあり、p:datatable に onRowSelect イベントがあります。私の問題は、選択メニューの右側にあるアイコン内の下向き矢印をクリックするたびに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>
4

0 に答える 0