Dynamische Bindung innerhalb einer Wiederholungskontrolle

In einem Bestellmodul müssen wir bestimmte Fragen stellen, abhängig von der Auswahlmethode der Quelle, der Art des Wettbewerbs und den Gesamtkosten der Bestellung. Diese Fragen können sich im Laufe der Zeit und zwischen verschiedenen Instanzen der Datenbank ändern.

Ich habe also eine Ansicht, die die Fragen enthält, sodass ich Fragen dynamisch zu meiner XPage hinzufügen kann, ohne den Code ändern zu müssen. Die Antwort auf jede Frage wird in einem Feld gespeichert. Das Dokument, das die Frage enthält, enthält ein Feld mit dem Namen FieldName, mit dem der Feldname angegeben wird, der verwendet wird. Leider habe ich kein Glück, diese dynamischen Felder an das Dokument zu binden.

<xp:this.data>
    <xp:dominoView var="competitionQuestionView"
        viewName="CompetitionQuestions">
    </xp:dominoView>
</xp:this.data>
<xp:repeat id="repeat2" rows="30" var="rowData" style="width:700px"
    value="#{competitionQuestionView}">
    <xp:label id="label1">
        <xp:this.value><![CDATA[#{javascript:rowData.getColumnValue("Question");}]]></xp:this.value>
    </xp:label>
    <xp:inputText id="inputText1">
        <xp:this.rendered><![CDATA[#{javascript:rowData.getColumnValue("FieldType") == "Text Box"; }]]></xp:this.rendered>
        <xp:this.value><![CDATA[#{javascript:poDoc[rowData.getColumnValue ("FieldName")];}]]></xp:this.value>
    </xp:inputText>
</xp:repeat>

Ich habe verschiedene Möglichkeiten ausprobiert, um dies zu erreichen, einschließlich der Erstellung eines benutzerdefinierten Steuerelements für dynamicInputText zur Übergabe des Feldnamens, jedoch ohne Erfolg. Das nächste, was ich bekam, war, als ich das benutzte:

<xp:this.value>
<![CDATA[#{javascript:tmp = rowData.getColumnValue ("FieldName");'#{poDoc.'+tmp+'}';}]]>
</xp:this.value>

Das hat mir sowas gegeben# {poDoc.justification}, das war es, was ich an die 'Bindung' übergeben wollte, aber es endete als Textwert angezeigt.

Ich habe versucht, mit $ den Wert beim Laden zu berechnen, aber ich vermute, dass dies nicht funktioniert hat, da meine (und die rowData-) Ansicht beim Laden nicht verfügbar ist. Das würde schließlich ein Problem darstellen, wenn ich Teilaktualisierungen aufgrund von Aktualisierungen der Kriterien verwenden wollte, für die ich sowieso Felder anzeigen möchte.

Einige der Antworten auf andere Fragen sahen vielversprechend aus, aber es wurde kein Code bereitgestellt, sodass ich es nicht herausfinden konnte.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage