我试图捕获控制器中的选定选项卡。我有以下代码,如果我留在脚本中的警报消息,它工作正常。一旦我删除警报,它似乎不再调用控制器。我只在代码段中显示一个标签。我还有其他3个定义。
<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 :(得分:0)
我基本上通过使用选项卡面板上的value属性来修复此问题。由于我的控制器只对选择了哪个选项卡感兴趣,而不是选择选项卡时它有效。基本上是:
<apex:tabpanel value="{!activeTab}">
<apex:tab name="tab1">...</apex:Tab>
因此,每当更改选项卡时,只要您在选项卡上指定了名称属性,就可以在控制器中访问它。
很抱歉,我不再需要发布控制器代码,但它基本上只是一个在控制器中设置变量的方法。