「OK」(デフォルト)と「ログ」の2つの値を持つラジオグループがあります。値 "Log"がチェックされると、extlibダイアログが開きます。私が望むのは、ダイアログボックスがキャンセルの場合、ラジオグループの値を「OK」に戻す方法です。ラジオグループは難易度の高い場所にあるカスタムコントロール内にあります。このダイアログは、呼び出すxpageから別のドキュメントを保存するために使用されます。 このコンセプトは、jqueryを使用して値を「OK」に戻す単一のラジオ・グループをモックアップするときに機能しますが、リピートで正しいコンポーネントIDを取得できません。あなたはダイアログが同じ「名前のコンテナのxページのダイアログがキャンセルされたときのコンポーネント値の変更
になりますIDを計算するときには、私はしたくない」と思うかもしれないので
おかげ
<xp:view
xmlns:xp="http://www.ibm.com/xsp/core"
xmlns:xe="http://www.ibm.com/xsp/coreex"
xmlns:xc="http://www.ibm.com/xsp/custom">
<xp:this.data>
<xp:dominoDocument
var="document1"
formName="frRegion">
</xp:dominoDocument>
</xp:this.data>
<xp:this.resources>
<xp:script
src="js/jquery-3.1.1.min.js"
clientSide="true">
</xp:script>
<xp:styleSheet href="/dynFields.css"></xp:styleSheet>
</xp:this.resources>
 
<xp:br>
<p>TEST This</p></xp:br>
<xp:inputText id="inputText1" value="#{document1.fRegion}"></xp:inputText>
<xp:br></xp:br>
<xp:repeat
var="rownum"
indexVar="rowIndex">
<xp:this.value><![CDATA[#{javascript:[1,2]}]]></xp:this.value>
<xc:ccDynRadioGroup
dialogEnable="true"
dataSource="#{javascript:document1}"
defaultValue="Ok">
<xc:this.selectItems><![CDATA[#{javascript:"Ok|Ok,Log|Log"}]]></xc:this.selectItems>
<xc:this.fieldName><![CDATA[#{javascript:"C_"+rownum
}]]></xc:this.fieldName>
</xc:ccDynRadioGroup>
</xp:repeat>
<xp:br></xp:br>
<xe:dialog id="dialog1">
<xe:this.dojoAttributes>
<xp:dojoAttribute
name="disableCloseButton"
value="false">
</xp:dojoAttribute>
</xe:this.dojoAttributes>
<xp:panel>
<xp:table>
<xp:tr>
<xp:td>
<xp:label
value="TEST"
id="label1">
</xp:label>
</xp:td>
<xp:td></xp:td>
</xp:tr>
<xp:tr>
<xp:td>
<xp:button
value="DummySave"
id="button1">
<xp:eventHandler
event="onclick"
submit="true"
refreshMode="complete">
<xp:this.action><![CDATA[#{javascript:var c = getComponent("dialog1");
c.hide();}]]></xp:this.action>
</xp:eventHandler>
</xp:button>
</xp:td>
<xp:td>
<xp:button
value="Cancel"
id="button2">
<xp:eventHandler
event="onclick"
submit="false">
<xp:this.script><![CDATA[var v = "dialog1"
if(v == "dialog1"){
XSP.closeDialog("#{id:dialog1}");
$(xId("#{id:rg_Insp}")+".RadioGroupD"+" [value=Ok]").prop("checked",true);
}
function x$(idTag, param){ //Updated 18 Feb 2012
idTag=idTag.replace(/:/gi, "\\:")+(param ? param : "");
return($("#"+idTag));
}
function xId(id){
id = id.replace(/:/gi, "\\:");
return "#"+id;
}]]></xp:this.script>
</xp:eventHandler>
</xp:button>
</xp:td>
</xp:tr>
</xp:table>
</xp:panel>
<xp:eventHandler
event="onClose"
submit="false">
<xe:this.script><![CDATA[//$(xId("#{id:rg_Insp}")+".RadioGroupD"+" [value=Ok]").prop("checked",true);]]></xe:this.script>
</xp:eventHandler>
</xe:dialog>
</xp:view>
<?xml version="1.0" encoding="UTF-8"?>
<xp:view
xmlns:xp="http://www.ibm.com/xsp/core">
<xp:radioGroup
id="rg_Insp"
value="#{compositeData.dataSource[compositeData.fieldName]}"
styleClass="RadioGroupD" defaultValue="#{javascript:compositeData.defaultValue}">
<xp:selectItems>
<xp:this.value><![CDATA[#{javascript:@Explode(compositeData.selectItems,",")}]]></xp:this.value>
</xp:selectItems>
<xp:eventHandler
event="onchange"
submit="true"
refreshMode="complete">
<xp:this.action><![CDATA[#{javascript:if(compositeData.dialogEnable){
var v:string = getComponent("rg_Insp").getValue();
if(v.equalsIgnoreCase("Log")){
var d = getComponent("dialog1");
d.show();
}
}}]]></xp:this.action>
</xp:eventHandler>
</xp:radioGroup>
</xp:view>
あなたのソースコードを提供できますか? – jreed
モックアップコードは、jquery 3.1.1です –