How to call controller method from tab component in visualforce?
Apex:
public with sharing class tabController2 {
public list<account> accList {get; set;}
public list<contact> conList {get; set;}
public tabController2(){
accList = [select name from account where industry = 'energy'];
}
public void contactRec(){
conList = [select lastName from contact];
}
}
Page:
<apex:page controller="tabController2">
<script>
// jsFunc is called from tab2 (referred by id in apex:tab)
function jsFunc(){
actionfun();
}
</script>
<apex:form >
<apex:tabPanel id="tabP" switchType="ajax">
<apex:tab label="Energy Accounts">
<apex:pageblock >
<apex:pageblockTable value="{!accList}" var="a">
<apex:column value="{!a.name}"/>
</apex:pageblockTable>
</apex:pageblock>
</apex:tab>
<apex:tab label="Contact Records" oncomplete="jsFunc()" id="tab2">
<apex:pageblock >
<apex:pageblockTable value="{!conList}" var="c">
<apex:column value="{!c.lastName}"/>
</apex:pageblockTable>
</apex:pageblock>
</apex:tab>
</apex:tabPanel>
<!-- Once the actionfun is invoked from javascript and contactRec will be invoked -->
<apex:actionFunction name="actionfun" action="{!contactRec}" reRender="tabP"/>
</apex:form>
</apex:page>