Autor Thema: ComboBox mit editierbaren Werten  (Gelesen 2573 mal)

Offline Froem1991

  • Frischling
  • *
  • Beiträge: 4
ComboBox mit editierbaren Werten
« am: 13.09.12 - 08:24:24 »
Guten Morgen,
ich sitze nun schon seit längerer Zeit an einem Problem. Dies bezieht sich auf eine ComboBox, die ich in XPages benutzen möchte.
Diese ComboBox soll feste Werte besitzen, jedoch soll es auch möglich sein Einträge hinzu zu fügen, und diese ebenfalls in der Combobox für das nächste mal zu speichern.
Die Maske sieht so aus:


Dort wo "Combobox" steht soll die Combobox hin.

Ich hatte mir nochmal eine zweite Variante ausgesucht, um dieses Problem zu lösen und dachte mir, die Werte eventuell über ein zweites Feld und einen Button hinzu zu fügen. Ist das möglich?

Ich würde mich über Lösungen freuen egal ob es zu der Variante mit dem Button und dem zweiten Feld ist oder zu der "editierbaren" Combobox.

Vielen Dank, liebe Grüße und einen schönen Tag noch!  :P
« Letzte Änderung: 13.09.12 - 08:42:16 von Froem1991 »

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re: ComboBox mit editierbaren Werten
« Antwort #1 am: 13.09.12 - 08:43:52 »
http://blog.hughesconnect.com/?p=149 ( mit den Ergänzungen in den Kommentaren )
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline Sven Hasselbach

  • Senior Mitglied
  • ****
  • Beiträge: 316
  • Geschlecht: Männlich
    • blog@hasselba.ch
Re: ComboBox mit editierbaren Werten
« Antwort #2 am: 13.09.12 - 09:59:52 »
Alternativ dazu mit Eingabe-Feld:

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

	<xp:this.data>
		<xp:dominoDocument var="document1"></xp:dominoDocument>
	</xp:this.data>
	
	<xp:div id="refreshMe">
		<xp:comboBox id="comboBox1"
			value="#{document1.selectedValue}">
			<xp:selectItem itemLabel="A"></xp:selectItem>
			<xp:selectItem itemLabel="B"></xp:selectItem>
			<xp:selectItem itemLabel="C"></xp:selectItem>

			<xp:selectItems>
				<xp:this.value>
					<![CDATA[#{javascript:
					try{
						document1.getItemValueArray("selectedValue");
					}catch(e){}
					}]]>
				</xp:this.value>
			</xp:selectItems>
		</xp:comboBox>

		<xp:inputText id="inputText1"
			value="#{requestScope.newValue}">
		</xp:inputText>
		<xp:br/>
		<xp:button value="Add" id="buttonAdd">
			<xp:eventHandler event="onclick" submit="true"
				refreshMode="partial" refreshId="refreshMe" disableValidators="true"
				execMode="partial" execId="refreshMe">
				<xp:this.action>
					<![CDATA[#{javascript:
						var combo = getComponent('comboBox1');
						var value = requestScope.get("newValue");
						var clist  = combo.getChildren();
						var item = new com.ibm.xsp.component.UISelectItemEx();
						item.setItemLabel(value);
						item.setItemValue(value);
						clist.add( item );
						combo.setValue( value );
					}]]>
				</xp:this.action>
			</xp:eventHandler>
		</xp:button>
	</xp:div>

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

Wichtig ist hierbei die Frage, was Du mit "für das nächste Mal zu speichern" meinst: Soll die Liste nur für das gespeicherte Dokument gelten (dann ist das wie hier in dieser Lösung), oder soll es für alle Dokumente gelten (dann muss das letzte Item in der Liste über eine Ansicht befüllt werden).



 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz