Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung - XPages => Thema gestartet von: Dirk Heimbürger am 16.01.13 - 12:25:25

Titel: Schaltfläche erst nach Bestätigung einer Checkbox anzeigen
Beitrag von: Dirk Heimbürger am 16.01.13 - 12:25:25
Hallo zusammen,

ich möchte in meiner XPage-Anwendung das Registrieren eines Benutzers nur erlauben, wenn der Anwender den AGB's zugestimmt hat.

Dazu habe ich, abgesehen von den Anmeldedaten, eine Checkbox für die AGB-Zustimmung und eine Schaltfläche für die Registrierung eingebaut.
Der Webzugriff ist zu diesem Zeitpunkt also noch Anonym.
Ich habe versucht, den Status der Checkbox in einer SessionScope-Variablen speichern und die Schaltfläche in Abhängigkeit davon Auszublenden.
Welche Property der Schaltfläche muß ich denn nehmen, damit Sie beim Anhaken der Checkbox sofort sichtbar wird?

Das kann doch nicht so schwer sein. Komme da irgendwie nicht weiter. Das hat doch sicher schon mal jemand gemacht.
Wer kann mir denn mal einen Tipp geben?
Titel: Re: Schaltfläche erst nach Bestätigung einer Checkbox anzeigen
Beitrag von: Jan Grünklee am 16.01.13 - 12:45:22
Hallo Dirk,

du muss einen Partial Refresh auf eine um den Button herumliegende Component (z.B. Panel) ausführen.

Beispiel:

Code
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
	<xp:panel id="panel1">
		<xp:button value="Aktion ausführen" id="button1">
			<xp:this.rendered><![CDATA[#{javascript:sessionScope.get("agb") == "1"}]]></xp:this.rendered>
		</xp:button>
	</xp:panel>
	<xp:panel id="panel2">
		<xp:checkBox text="Akzeptieren" id="checkBox1" value="#{sessionScope.agb}" checkedValue="1" uncheckedValue="0">
			<xp:eventHandler event="onchange" submit="true" refreshMode="partial" refreshId="panel1"></xp:eventHandler>
		</xp:checkBox>
	</xp:panel>
</xp:view>

Gruss Jan
Titel: Re: Schaltfläche erst nach Bestätigung einer Checkbox anzeigen
Beitrag von: Dirk Heimbürger am 16.01.13 - 17:16:16
Hallo Jan,

habe das event "onchange" noch auf "onclick" geändert und schon klappte dein Beispiel mir.
Vielen Dank für deine schnelle Hilfe !!

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
   <xp:panel id="panel1">
      <xp:button value="Aktion ausführen" id="button1">
         <xp:this.rendered><![CDATA[#{javascript:sessionScope.get("agb") == "1"}]]></xp:this.rendered>
      </xp:button>
   </xp:panel>
   <xp:panel id="panel2">
      <xp:checkBox text="Akzeptieren" id="checkBox1" value="#{sessionScope.agb}" checkedValue="1" uncheckedValue="0">
         <xp:eventHandler event="onclick" submit="true"
            refreshMode="partial" refreshId="panel1">
         </xp:eventHandler>
      </xp:checkBox>
   </xp:panel>
</xp:view>

Gruß Dirk