2

我正在研究按钮。

我的组件代码如下。

<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 没有被调用。当我在新窗口中打开我的页面时,函数被调用。但是在同一个窗口中它没有被调用。

任何帮助都非常感谢。

4

2 回答 2

2

如果,正如 Matthew 已经暗示的那样,您的页面或组件引用了您的控制器,我相信这可能是由 showmsg 变量引起的。

如果由于 showMsg 最初为 false 而未呈现 messageId 输出面板,它也不会重新呈现,因此不会显示您的消息。如果我是对的,以下内容会更有意义,并解决您的问题。

<apex:outputpanel  id="messageId">
        <apex:outputtext rendered="{!showmsg}" value="{!outputMessage}" style="color:red;font-size:13px;font-weight:bold;"/>
        <br />    
    </apex:outputpanel> 
于 2012-12-08T23:17:46.110 回答
0

当您<apex:commandButton><apex:commandLink>似乎没有调用顶点控制器方法时,您可以尝试以下方法。

  1. 尝试immediate = true为这两个设置属性。这在某些情况下有效。

  2. 尝试使用<apex:actionFunction>.

  3. 如果您仍然无法使用 调用 apex 控制器方法<apex:actionFunction>,请参阅链接。

于 2016-12-25T18:07:25.783 回答