2014-07-22 31 views
0

我嘗試恢復用戶的答案,但我不能。 我有一個dropdownbutton,我收回名單,並默認值由Java類。 這是確定這一點。 但是,當我試圖推動名單的其他文本:沒有追加...XPAGES:通過下拉按鈕獲取用戶的答案

<xe:dropDownButton id="dropdownEtatDoc"> 
      <xe:this.treeNodes> 
       <xe:basicContainerNode> 
        <!--   Affiche l'état du document par défaut--> 
        <xe:this.label id="labelEtatDoc"> 
         <![CDATA[#{javascript:      
          etatDoc.nomEtatDoc;      
         }]]> 
        </xe:this.label> 
        <!--   affiche la liste des états du document--> 
        <xe:repeatTreeNode var="index" value="#{etatDoc.listEtatDoc}"> 
         <xe:this.children> 
          <xe:basicLeafNode label="#{index}" submitValue="#{index}" /> 
         </xe:this.children> 
        </xe:repeatTreeNode> 
       </xe:basicContainerNode> 
      </xe:this.treeNodes> 
        <!--   actualise la chaine sélectionnée--> 
        <xp:eventHandler event="onItemClick" submit="true" 
         refreshMode="complete"> 
         <xp:this.action> 
          <xp:executeScript> 
           <xp:this.script><![CDATA[#{javascript:      
           var montest = getComponent("dropdownEtatDoc").submittedValue(); 
           etatDoc.nomEtatDoc = montest; 
         }]]></xp:this.script> 
          </xp:executeScript> 
         </xp:this.action> 
        </xp:eventHandler> 
     </xe:dropDownButton> 

的想法?謝謝 !

我用一個組合框,它是好的,我不知道爲什麼......

我對任何人的代碼有同樣的問題:

<xp:this.beforePageLoad> 
     <xp:executeScript> 
      <xp:this.script><![CDATA[#{javascript: 
      viewScope.etat = etatDoc.listEtatDoc; 
      viewScope.grdFam = chapitre.listChapitre1;   
      }]]></xp:this.script>   
     </xp:executeScript> 
    </xp:this.beforePageLoad> 

    <xp:div> 
     <!--**************** DEBUT CBXETATDOC *************************************************************-->    
       <xp:label value="Etat : " id="label1"></xp:label> 
       <xp:comboBox id="cbxEtat">         
        <xp:selectItem itemLabel="Tout" itemValue="" /> 
        <xp:selectItems value="#{viewScope.etat}" /> 
        <xp:eventHandler event="onchange" submit="true" refreshMode="complete" immediate="true"> 
         <xp:this.action> 
          <xp:executeScript> 
           <xp:this.script> 
            <![CDATA[#{javascript: 
             var etat = getComponent("cbxEtat").submittedValue;              
            }]]> 
           </xp:this.script> 
          </xp:executeScript> 
         </xp:this.action> 
        </xp:eventHandler> 
       </xp:comboBox> 

回答

0

假設「etatDoc」是NotesXspDocument,而不是一個豆子。

1)如果你有麻煩提交的值,通過上下文獲得它:

var submitted = context.getSubmittedValue(); 
print("submitted: " + submitted); //check if it is there, delete afterward 
switch(submitted){ 
case("btn1") 
//doSomething(submitted); 
break; 

} 

由於您使用的中繼節點,這是不實際使用開關這一切,但是你可以設定一個默認值,你可以用索引值進行任何你需要的操作。

2)那麼我不認爲你正在設置的價值。嘗試:

var montest = submitted; 
etatDoc.replaceItemValue("nomEtatDoc", etatDoc.getItemValue("nomEtatDoc").add(montest)) 
//gets the current list (java.util.Vector) from the document 
//add a value to the list 
//replace the value with the new list 

我假設你沒有爲此使用自制的豆。