2017-09-14 10 views
0

「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> 
    &#160; 
    <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> 
+0

あなたのソースコードを提供できますか? – jreed

+0

モックアップコードは、jquery 3.1.1です –

答えて

1

は繰り返しの中ダイアログを入れてみてください何千ものダイアログを作成することができますが、心配する必要はありません。繰り返しでrepeatControls = "true"を設定しない限り、まだダイアログが1つしかありませんが、繰り返しの現在の反復を認識しています。現在のラジオグループの正しいID

関連する問題