2015-03-03 2 views
0

У меня googled и stackoverflow много, но я не могу найти ответ.
Что нужно сделать, так это то, что значение outputLabel необходимо обновить, когда изменение выбора, а также отключить входной текст, необходимо включить, если вы выберете опцию B. (Кроме того, выбранное значение отображается в inputText)Primefaces selectOneMenu update outputLabel и inputText

моего отрезала XHTML:

<p:selectOneMenu id="findex" value="#{myController.selected.findex}" > 
    <p:ajax update="extra1 labelextra1" immediate="true"/> 
    <f:selectItem itemLabel="Value A" itemValue="A" /> 
    <f:selectItem itemLabel="Value B" itemValue="B" /> 
</p:selectOneMenu> 

<p:outputLabel id="labelextra1" value="#{myController.selected.findex == 'A' ? '' : 'X'}" for="extra1"/> 
<p:inputText id="extra1" value="#{myController.selected.findex}" disabled="#{myController.selected.findex == 'A'}"/> 

(слушатель в моем бэке-бобе делает дозвонился, если добавить его в AJAX, но я не уверен, что я требую, что это просто на событии изменения, ISN 't it?)

+0

ли работа без 'немедленным = "истинный"'? –

+0

Нет, без изменений с немедленным = «true» – TungstenX

ответ

1

Я делаю небольшой пример. Это прекрасно работает. Думаю, у вас нет <h:form>? Вам нужна форма для этого.

.xhtml

<html xmlns="http://www.w3.org/1999/xhtml" 
xmlns:h="http://java.sun.com/jsf/html" 
xmlns:f="http://java.sun.com/jsf/core" 
xmlns:p="http://primefaces.org/ui"> 

<h:head> 
<title>Jsf page.</title> 
</h:head> 

<h:body> 
<h:form> 
    <p:selectOneMenu id="findex" value="#{myController.test}"> 
     <f:selectItem itemLabel="Value A" itemValue="A" /> 
     <f:selectItem itemLabel="Value B" itemValue="B" /> 
     <p:ajax update="labelextra1 extra1" /> 
    </p:selectOneMenu> 

    <p:outputLabel id="labelextra1" value="#{myController.test}" for="extra1" /> 
    <p:inputText id="extra1" value="hello" disabled="#{myController.test == 'A'}"/> 
</h:form> 

</h:body> 
</html> 

БИН:

@ManagedBean 
@ViewScoped 
public class MyController implements Serializable{ 

private String test = "hallo"; 


public String getTest() { 
    return test; 
} 

public void setTest(String test) { 
    this.test = test; 
} 


} 
+0

Это в Этот пример действительно работает, и я включил его в фактический xhtml. Он работает, пока я не начну использовать свой объект db, на котором основана форма. Решение более сложное, но я должен заставить его работать. Отключенная логика находится в контроллере (а не в xhtml) – TungstenX

Смежные вопросы