Ligação dinâmica dentro de um controle de repetição
Em um módulo de ordem de compra, precisamos fazer certas perguntas, dependendo do método de seleção de fonte, do tipo de concorrência e do custo total do pedido. Essas perguntas provavelmente mudam com o tempo e entre diferentes instâncias do banco de dados.
Então eu tenho uma visão contendo as perguntas, para que eu possa adicionar questões dinamicamente à minha XPage sem precisar alterar o código. A resposta para cada pergunta será armazenada em um campo. Assim, o documento que contém a pergunta tem um campo chamado FieldName que é usado para fornecer o nome do campo que será usado. Infelizmente, não estou tendo sorte ligando esses campos dinâmicos ao documento.
<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>
Eu tentei várias maneiras de fazer isso, incluindo fazer um controle personalizado dynamicInputText para passar o nome do campo, mas sem sorte. O mais perto que cheguei foi quando usei isso:
<xp:this.value>
<![CDATA[#{javascript:tmp = rowData.getColumnValue ("FieldName");'#{poDoc.'+tmp+'}';}]]>
</xp:this.value>
Isso me deu algo parecido# {poDoc.justification}, que era o que eu queria passar para a 'ligação', mas acabou exibindo como o valor do texto.
Eu tentei usar $ para calcular o valor da carga, mas estou supondo que não funcionou porque a minha (e a rowData) não está disponível no carregamento. Isso eventualmente apresentaria um problema quando eu quisesse usar atualizações parciais devido a atualizações nos critérios para quais campos eu gostaria de exibir de qualquer maneira.
Algumas das respostas a outras perguntas pareciam promissoras, mas nenhum código foi fornecido, então não consegui descobrir.