2016-04-29 20 views
1

Ich habe ein Formular, das ein numerisch aktiviertes numerisches Feld enthält. Ich möchte es auf einer xpage in einer Combobox anzeigen, wenn es mehrere Werte hat. Allerdings bekomme ich die Fehlermeldung 500.Combobox - Anzeige mehrwertiges numerisches Feld

Wenn ich versuche, dasselbe mit einem mehrwertigen Textfeld zu erreichen, wurde die xpage gerendert.

Was mache ich falsch?

<?xml version="1.0" encoding="UTF-8"?> 
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"> 
    <xp:this.data> 
     <xp:dominoDocument var="doc" formName="test" 
      action="editDocument"> 
     </xp:dominoDocument> 
    </xp:this.data> 
    <xp:table> 
     <xp:tr> 
      <xp:td> 
       <xp:label value="Label:" id="lb" 
        for="label1"> 
       </xp:label> 
      </xp:td> 
      <xp:td>    
       <xp:comboBox id="cbLabel" value="#{doc.label}"> 
        <xp:selectItems> 
         <xp:this.value><![CDATA[#{javascript:return doc.getItemValue("label")}]]></xp:this.value> 
        </xp:selectItems> 
       </xp:comboBox> 
      </xp:td> 
     </xp:tr> 
     <xp:tr> 
      <xp:td> 
       <xp:label value="Price:" id="pr" 
        for="price1"> 
       </xp:label> 
      </xp:td> 
      <xp:td> 
       <xp:comboBox id="cbPrice" value="#{doc.price}"> 
        <xp:selectItems> 
         <xp:this.value><![CDATA[#{javascript:return doc.getItemValue("price")}]]></xp:this.value> 
        </xp:selectItems> 
       </xp:comboBox> 
      </xp:td> 
     </xp:tr>   
    </xp:table> 
</xp:view> 
+0

Überprüfen Sie die Protokolldatei im IBM_TECHNICAL_SUPPORT Ordner, um die detaillierte Fehlermeldung zu sehen. Benutze XPages Log File Reader wenn du nicht schon bist :-) –

Antwort

1

<xp:selectItems> akzeptiert nur String-Werte.

Konvertieren Sie die Zahlen Ihres Preises in selectItems 'Wert-Code in Zeichenfolgen und
fügen Sie eine Nummer oder Währungsumrechner zu Ihrer Combobox.

Als Alternative können Sie Elemente auswählen mit einem String-Label und einen Zahlenwert erstellen:

<xp:selectItems> 
     <xp:this.value><![CDATA[#{javascript: 
      var items = new java.util.ArrayList(); 
      for (value in doc.getItemValue("price")) { 
       var item = new javax.faces.model.SelectItem(); 
       item.setLabel(value.toString()); 
       item.setValue(value); 
       items.add(item); 
      } 
      return items}]]></xp:this.value> 
    </xp:selectItems> 
+0

danke Knut. Das funktioniert großartig. Aber wenn ich versuche, die gewählte Option wieder in das Dokument zu speichern, funktioniert es nicht. Wenn ich ein xp: messages-Steuerelement hinzufüge, erhalte ich die Nachricht; Validierungsfehler: Wert ist nicht gültig. Wie soll ich es beim Speichern des Dokuments umkehren? – Malin