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

マシューがすでにほのめかしたように、コントローラーがページまたはコンポーネントによって参照されている場合、それは 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> 
于 2012-12-08T23:17:46.110 に答える
0

<apex:commandButton>or<apex:commandLink>が apex コントローラー メソッドを呼び出していないように見える場合は、次のアプローチを試すことができます。

  1. この 2 つの属性immediate = trueを設定してみてください。それは場合によってはうまくいきます。

  2. を使用して apex コントローラー メソッドを呼び出してみてください<apex:actionFunction>

  3. 何らかの理由で を使用して apex コントローラー メソッドを呼び出せない場合は、このリンク<apex:actionFunction>を参照してください。

于 2016-12-25T18:07:25.783 に答える