Autor Thema: Bei xp:message Ausgabe lade CSS  (Gelesen 3852 mal)

Offline manderson

  • Junior Mitglied
  • **
  • Beiträge: 68
    • manderson.de
Bei xp:message Ausgabe lade CSS
« am: 12.06.12 - 15:06:00 »
Hallo,

kann ich irgendwie eine weitere CSS (mit)laden wenn ich für ein xp:message eine Ausgabe bekomme? Also wenn ein Fehler für Feld XYZ vorliegt lade Stylesheet XYZ.

Clientseitige Validierung ist aus...

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: Bei xp:message Ausgabe lade CSS
« Antwort #1 am: 12.06.12 - 15:21:53 »
... was hast du denn genau vor - dein Konstrukt ist eventuell gar nicht notwendig
Grüßle Toni :)

Offline manderson

  • Junior Mitglied
  • **
  • Beiträge: 68
    • manderson.de
Re: Bei xp:message Ausgabe lade CSS
« Antwort #2 am: 12.06.12 - 15:25:15 »
Muss für ein div, in dem ein Auswahlfeld liegt, die Styleangaben ändern wenn kein Wert ausgewählt worden ist ....

Offline Sven Hasselbach

  • Senior Mitglied
  • ****
  • Beiträge: 316
  • Geschlecht: Männlich
    • blog@hasselba.ch
Re: Bei xp:message Ausgabe lade CSS
« Antwort #3 am: 12.06.12 - 15:28:03 »
Muss es der gesamte Div sein, oder sollen nur die Felder hervorgehoben werden?

In letzterem Fall siehe hier:
http://dontpanic82.blogspot.de/2011/07/xpages-styling-invalid-field.html

Offline manderson

  • Junior Mitglied
  • **
  • Beiträge: 68
    • manderson.de
Re: Bei xp:message Ausgabe lade CSS
« Antwort #4 am: 12.06.12 - 15:30:20 »
leider der div :(

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: Bei xp:message Ausgabe lade CSS
« Antwort #5 am: 12.06.12 - 15:32:37 »
... der div hat doch eine ID - dann sprich ihn doch direkt an und ändere den Style...
Grüßle Toni :)

Offline Sven Hasselbach

  • Senior Mitglied
  • ****
  • Beiträge: 316
  • Geschlecht: Männlich
    • blog@hasselba.ch
Re: Bei xp:message Ausgabe lade CSS
« Antwort #6 am: 12.06.12 - 15:52:48 »
Hier ein kleines Snippet:

Code
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
	<xp:div>
		<xp:this.style><![CDATA[#{javascript:
			var style = "background-color:rgb(128,0,255)";
			var cids = facesContext.getClientIdsWithMessages();
			
			while( cids.hasNext() ){
  				var id = cids.next();
  				if( facesContext.getMessages( id ) != null ) return style;
 			}
 			}]]>
 		</xp:this.style>
		<xp:inputText id="inputText1" required="true"
			value="#{requestScope.fillMe}">
		</xp:inputText>
	</xp:div>
	<xp:button value="Label" id="button1"><xp:eventHandler event="onclick" submit="true" refreshMode="complete" immediate="false" save="true"></xp:eventHandler></xp:button>

</xp:view>

Offline manderson

  • Junior Mitglied
  • **
  • Beiträge: 68
    • manderson.de
Re: Bei xp:message Ausgabe lade CSS
« Antwort #7 am: 13.06.12 - 09:36:12 »
Super! Das Snippet von Sven hilft schon!

Muss es nur noch hin bekommen das nicht bei  allen divs (wo ich den code eingefügt habe) nun die Farbe gewechselt wird, sondern nur bei denen mit der Fehlermeldung des beinhaltenden Feldes....

Dachte es geht einfach in dem ich die var name ändere, klappt aber leider nicht. Ist jemand von den Meistern hier so nett und kann mir verraten warum?

Code
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">

	<xp:messages id="messages1"></xp:messages>

	<xp:div>
		<xp:this.style><![CDATA[#{javascript:
			var style = "background-color:rgb(128,0,255)";
			var cids = facesContext.getClientIdsWithMessages();
			
			while( cids.hasNext() ){
  				var id = cids.next();
  				if( facesContext.getMessages( id ) != null ) return style;
 			}
 			}]]>
 		</xp:this.style>
		<xp:inputText id="inputText1" required="true">
		<xp:this.validators>
			<xp:validateRequired message="Fehler Feld 1"></xp:validateRequired>
		</xp:this.validators></xp:inputText>
</xp:div>
<xp:div>
		<xp:this.style><![CDATA[#{javascript:
			var style2 = "background-color:rgb(128,0,0)";
			var cids2 = facesContext.getClientIdsWithMessages();
			
			while( cids2.hasNext() ){
  				var idx = cids2.next();
  				if( facesContext.getMessages( idx ) != null ) return style2;
 			}
 			}]]>
 		</xp:this.style>
		<xp:inputText id="inputText2" required="true">
		<xp:this.validators>
			<xp:validateRequired message="Fehler Feld 2"></xp:validateRequired>
		</xp:this.validators></xp:inputText>
</xp:div>
	

	<xp:button value="Beschriftung" id="button1"><xp:eventHandler event="onclick" submit="true" refreshMode="complete" immediate="false" save="true"></xp:eventHandler></xp:button></xp:view>

Offline manderson

  • Junior Mitglied
  • **
  • Beiträge: 68
    • manderson.de
Re: Bei xp:message Ausgabe lade CSS
« Antwort #8 am: 13.06.12 - 10:36:58 »
Ha! Java-Kollege hat geholfen:

Code
<xp:this.style><![CDATA[#{javascript:
			var style = "background-color:rgb(128,0,0)";
			var firstMsg = facesContext.getMessages( 'view:_id1:inputText1' )
 			return firstMsg.hasNext() ? style:'';
			}]]>
</xp:this.style>

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz