2016-10-27 3 views
0

Ich versuche, die ausgewählte Registerkarte in meinem Controller zu erfassen. Ich habe den folgenden Code und es funktioniert gut, wenn ich die Warnmeldung im Skript belassen. Sobald ich den Alarm entferne, scheint er den Anruf nicht mehr an den Controller zu senden. Ich zeige nur eine Registerkarte im Code-Snippet an. Ich habe 3 andere definiert.ActionFunction wird keine Controller-Funktion ohne Warnmeldung aufrufen

<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

post Ihren Controller-Code auch. – Rockstar

Antwort

0

ich dies im Grunde festgelegt auf der Registerkarte Panel den Wert Attribut verwendet wird. Da mein Controller nur wissen wollte, welcher Tab ausgewählt wurde, und nicht wenn der Tab ausgewählt wurde, funktionierte es. Grundsätzlich gilt:

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

Also, wenn ein Register geändert wird, so lange wie Sie einen Namen Attribut auf der Registerkarte angegeben haben, wird es in Ihrem Controller zugänglich sein.

Es tut mir leid, ich habe nicht mehr diesen Controller-Code zum Posten, aber es war im Grunde nur eine Methode, die eine Variable in der Steuerung setzen.

Verwandte Themen