При переключении значения переключателя необходимо изменить список выбранных элементов - PullRequest
0 голосов
/ 09 января 2012

Привет, у меня есть список и группа переключателей. Jsf1.1

. При изменении значений переключателей необходимо изменить выбранные значения в списке.повторный вызов некоторого встроенного класса приводит к изменению его на предыдущие значения.

ниже приведен JSFcode ...

 <ui:listbox binding="#{weka$DataMining.listbox_pidGroups}" id="listbox_pidGroups"
      items="#{VisualAnalyticsSessionBean.pidStaticInfo.pidGroupsForClusterTree}" label="PID Groups" labelOnTop="true" multiple="true"
      rows="5" selected="#{VisualAnalyticsSessionBean.pidStaticInfo.selectedGroup}"/>
 <h:panelGrid binding="#{weka$DataMining.gridPanel_ClusterType}" id="gridPanel_ClusterType" style="">
     <ui:radioButtonGroup binding="#{weka$DataMining.radioButtonGroup_clusters}" id="radioButtonGroup_clusters"
         items="#{VisualAnalyticsSessionBean.fsdfOptions.clusters}" onClick="common_timeoutSubmitForm(this.form, 'gridPanel_ClusterType')"
         selected="#{VisualAnalyticsSessionBean.fsdfOptions.clusterType}" immediate="true" valueChangeListener="#{weka$DataMining.clustergroup_processValueChange}"/>
     <ui:radioButton binding="#{weka$DataMining.radioButton_SingleCluster}" id="radioButton_SingleCluster" label="Single Cluster"
         name="radioButton-group-gridPanel_ClusterType" rendered="false" selected="#{VisualAnalyticsSessionBean.pidParameters.singleCluster}"/>

1 Ответ

0 голосов
/ 09 января 2012

Вы установили immediate="true" для компонента группы переключателей. Это означает, что все другие входные компоненты, для которых не установлен immediate="true", например, как компонент списка, не будут заданы и получат свои значения из модели. Симптомы вашей проблемы указывают на то, что вы меняете значение списка, изменяя значение модели. Вам нужно переписать код слушателя изменения значения, чтобы он вместо этого устанавливал обновленное значение непосредственно в компоненте. Вы связали компонент listbox со свойством listbox_pidGroups компонента, поэтому вместо него нужно вызвать setValue().

Что-то вроде

listbox_pidGroups.setValue(newValue);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...