Можно ли определить некоторые SSJS через определение свойства в пользовательском элементе управления?
Например, для тестирования у меня есть определение свойства в пользовательском элементе управления с именем onClickCode. В указанном пользовательском элементе управления есть радио-кнопка, и в событии onClick / onChange я пытаюсь написать ComboData.onClickCode. Кажется, это выполняется при загрузке страницы, а не при событии onClick.
Код, который передается в определениях свойств:
<xc:ccQuestionInterimRadiosYesNo required="true"
dataSource="#{document1}" fieldName="Q1"
helpText="Please select an answer"
placeholder="Enter any further details here..."
questionHeader="primary" questionTextNJD="QuestionTextNJD">
<xc:this.radioOptions><![CDATA[#{javascript:return ['Yes', 'No'];}]]></xc:this.radioOptions>
<xc:this.questionText><![CDATA[${javascript:"Ready for section 2?"}]]></xc:this.questionText>
<xc:this.onClickCode><![CDATA[#{javascript:'print("Hello")'}]]></xc:this.onClickCode>
</xc:ccQuestionInterimRadiosYesNo>
Код переключателя внутри указанного пользовательского элемента управления:
<!-- RADIO BUTTON GROUP -->
<xp:radioGroup
loaded="${!empty compositeData.placeholder}"
value="#{compositeData.dataSource[compositeData.fieldName]}"
required="${compositeData.required}" layout="lineDirection">
<xp:this.validators>
<xp:validateRequired
message="#{javascript:compositeData.helpText}">
</xp:validateRequired>
</xp:this.validators>
<xp:this.id><![CDATA[${javascript:"radioGroup"+compositeData.fieldName}]]></xp:this.id>
<xp:selectItems>
<xp:this.value><![CDATA[#{javascript:compositeData.radioOptions}]]></xp:this.value>
</xp:selectItems>
<xp:eventHandler event="onchange"
submit="true" refreshMode="complete">
<xp:this.action><![CDATA[#{javascript:compositeData.onClickCode}]]></xp:this.action>
</xp:eventHandler></xp:radioGroup>
UPDATE:
Пользовательский контроль на странице проходит:
onClickCode="#{javascript:test1}"
Код события onChange переключателя в пользовательском элементе управления:
if (compositeData.onClickCode) {
compositeData.onClickCode.call();
}
Скрипт, содержащий код, является частью моей темы:
<script src="/StdServerScripts.jss" clientSide="false"></script>
Код в указанном скрипте:
function test1() {
print("Hello");
}