我正在按钮。
我的组件代码如下。
<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没有被调用。 当我打开包含在新窗口中的页面时,函数被调用。但是在同一个窗口中它没有被调用。
任何帮助都非常感谢。
答案 0 :(得分:2)
如果,正如Matthew已经暗示你的控制器是由你的页面或组件引用的,我相信它可能是由showmsg变量引起的。
如果由于showMsg最初为false而未呈现messageId outputpanel,则它也不会重新呈现,从而不会显示您的消息。如果我是对的,以下内容会更有意义,并解决您的问题。
<apex:outputpanel id="messageId">
<apex:outputtext rendered="{!showmsg}" value="{!outputMessage}" style="color:red;font-size:13px;font-weight:bold;"/>
<br />
</apex:outputpanel>
答案 1 :(得分:0)
如果<apex:commandButton>
或<apex:commandLink>
似乎没有调用顶点控制器方法,您可以尝试以下方法。
尝试为这两个设置属性immediate = true
。这在某些情况下有效。
尝试使用<apex:actionFunction>
调用apex控制器方法。
如果您仍然无法使用<apex:actionFunction>
调用顶点控制器方法,请参阅this链接。