Динамическое связывание в повторном контроле
В модуле заказа на поставку нам нужно задать определенные вопросы в зависимости от метода выбора источника, типа конкурса и общей стоимости заказа на поставку. Эти вопросы могут меняться со временем и между различными экземплярами базы данных.
Итак, у меня есть представление, содержащее вопросы, так что я могу динамически добавлять вопросы в мой XPage без необходимости изменения кода. Ответ на каждый вопрос будет храниться в поле. Таким образом, документ, содержащий вопрос, имеет поле с именем FieldName, которое используется для предоставления имени поля, которое будет использоваться. К сожалению, мне не повезло связывать эти динамические поля с документом.
<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>
Я пробовал разные способы сделать это, включая создание настраиваемого элемента управления dynamicInputText для передачи имени поля, но безуспешно. Самое близкое, что я получил, было, когда я использовал это:
<xp:this.value>
<![CDATA[#{javascript:tmp = rowData.getColumnValue ("FieldName");'#{poDoc.'+tmp+'}';}]]>
</xp:this.value>
Это дало мне что-то вроде# {PoDoc.justification}Это было то, что я хотел передать «связыванию», но в итоге оно отображалось как текстовое значение.
Я пытался использовать $ для вычисления значения при загрузке, но я предполагаю, что это не сработало, потому что мое представление (и rowData) недоступно при загрузке. В конечном итоге это может вызвать проблемы, если я захочу использовать частичное обновление из-за обновлений критериев, для которых поля я все равно хочу отображать.
Некоторые ответы на другие вопросы выглядели многообещающими, но код не был предоставлен, поэтому я не мог понять это.