2012-12-07 66 views
2

我正在使用按鈕。<apex:commandbutton>無法正常工作

我的組件代碼如下。

<apex:commandButton action="{!sendAction}" 
value="SEND" styleClass="Button" rerender="messageId" immediate="true"/> 

<apex:outputpanel rendered="{!showmsg}" id="messageId"> 
      <apex:outputtext value="{!outputMessage}" style="color:red;font-size:13px;font-weight:bold;"/> 
      <br />  
     </apex:outputpanel> 

我的控制器代碼如下。

public PageReference sendAction() 
{ 
    showmsg=true;      
    outputMessage='working';    
    return null;       
} 

但我的行動方法sendAction沒有被調用。 當我打開包含在新窗口中的頁面時,函數正在調用。但在同一個窗口中,它沒有被調用。

任何幫助真的很感激。

+1

您是否在頁面標籤上指定了'controller =「Your-Controller-Name」「或」extension =「Your-Controller-Extension-Name」「? –

+0

是的..我在標籤中添加了控制器 – dip

+0

@dip您是否嘗試過我的建議? –

回答

2

如果馬修已經暗示你的控制器被你的頁面或組件引用,我相信它可能是由showmsg變量引起的。

如果messageId輸出面板未呈現,因爲showMsg最初是false,它也不會重新渲染,因此不會顯示您的消息。如果我是對的,以下將更有意義,並解決您的問題。

<apex:outputpanel id="messageId"> 
     <apex:outputtext rendered="{!showmsg}" value="{!outputMessage}" style="color:red;font-size:13px;font-weight:bold;"/> 
     <br />  
    </apex:outputpanel> 
0

您可以嘗試在情況下,下面的方法你<apex:commandButton><apex:commandLink>時好像不叫頂點控制器的方法。

  1. 嘗試爲這兩個設置屬性immediate = true。這在某些情況下起作用。

  2. 嘗試使用<apex:actionFunction>調用apex控制器方法。

  3. 如果您仍然無法使用<apex:actionFunction>調用頂點控制器方法,請參閱this鏈接。