2016-10-27 2 views
0

J'essaie de capturer l'onglet sélectionné dans mon contrôleur. J'ai le code ci-dessous et cela fonctionne très bien si je laisse dans le message d'alerte dans le script. Une fois que j'ai supprimé l'alerte, il ne semble plus faire l'appel au contrôleur. J'affiche seulement un onglet dans l'extrait de code. J'ai 3 autres définis.ActionFunction n'appelle pas la fonction du contrôleur sans le message d'alerte

<apex:page showheader="true" sidebar="true" controller="mycontroller"> 
<script> 
    function setActiveTabJava(value){ 
     alert('here'); 
     setActiveTab(value); 
    } 
</script> 
<apex:form > 
    <apex:actionFunction id="activeTab" name="setActiveTab" action="{!setTab}" reRender=""> 
    <apex:param name="activeTab" assignTo="{!activeTab}" value=""/> 
    </apex:actionFunction> 
</apex:form> 
<apex:pageblock > 
    <apex:tabpanel selectedtab="Tab One" width="100%"> 
     <apex:tab label="This is tab one" name="tabone" id="referralTab" ontabenter="setActTabJava('TAB1');"> 
      <!-- other tab code-->   
     </apex:tab> 
    </apex:tabpanel> 
</apex:pageblock> 

+0

affichez également votre code de contrôleur. – Rockstar

Répondre

0

I essentiellement fixé ceci en utilisant l'attribut de valeur sur le panneau de l'onglet. Depuis mon contrôleur seulement intéressé à savoir quel onglet a été sélectionné, et non lorsque l'onglet a été sélectionné cela a fonctionné. En gros:

<apex:tabpanel value="{!activeTab}"> 
    <apex:tab name="tab1">...</apex:Tab> 

Donc, chaque fois qu'un onglet est changé, aussi longtemps que vous avez spécifié un attribut de nom sur l'onglet il sera accessible dans votre contrôleur. Donc, désolé, je n'ai plus ce code de contrôleur à publier, mais c'était simplement une méthode qui définissait une variable dans le contrôleur.