p:SelectOneMenu in einem p:inplace wird nichtmehr gerendert wenn disabled

Habe verschiedene Felder mit Werten die standardmäßig nicht editierbar sein sollen (disabled="#{foo.disabled}"), erst nach Klick auf einen Button soll das ermöglicht werden. Habe also eine Variable boolean disabled = true; angelegt, ein p:commandButton negiert bei Knopfdruck diesen Wert und updated die h:form.

Prinzipiell funktioniert das ohne Problem, solange das p:inplace, dessen disabled getoggled wurde, ein p:inputText umfasst. Handelt es sich um ein p:selectOneMenu, so wird das einfach nichtmehr gerendert. Wenn ich den Button danach wieder drücke (also disabled wieder true), erscheint das selectOneMenu wieder. InputTexts funktionieren wie erwartet (sind nicht-editierbar/editierbar).

Hier mein code in kurzform :


<h:form id="detailForm">	<p:inplace label="#{foo.bar}" editor="true" 		disabled="#{foo.disabled}">		<p:selectOneMenu value="#{foo.bar}">			<f:selectItems value="#{foo.alleBarsDieEsGibtBlaBlub}" />		</p:selectOneMenu>	</p:inplace>
	<p:inplace label="#{foo.bar}" editor="true" 		disabled="#{foo.disabled}">		<p:inputText value="#{foo.bar}" />	</p:inplace>		<p:commandButton actionListener="#{foo.toggleEdit}" value="Edit" update=":detailForm" /></h:form>

Die Methode in meiner Bean :

@Component
public class Foo {


	private boolean disabled = true;


	public void toggleEdit(ActionEvent event) {
		boolean disabled = this.disabled ? false : true;
		this.disabled = disabled;
	}
	
	// Getter, setter..
}

Was mache ich falsch?

Kann es sein, dass mit deinen Converter-Klassen für die SelectedItems etwas nicht stimmt?
Ich benutze ähnlichen Code in einigen meiner Projekte ohne Probleme. Was passiert, wenn du mal ein paar statische Items hinzufügst und die Liste rausnimmst?
Gruß,
Veit

PS: Den Zweizeiler im “toggleEdit” kannst du dir sparen:

public void toggleEdit(ActionEvent event) {
  this.disabled = this.disabled ? false : true;
}

Mit statischen items funktioniert das ganze tatsächlich… allerdings haben sich mittlerweile die Anforderungen wieder geändert, weswegen das ganze auch nichtmehr nötig ist.

mfg

// PS: Den Zweizeiler im „toggleEdit“ kannst du dir sparen:
:stuck_out_tongue: