2016-05-05 3 views
0

フィールドが値の場合はHTMLと式が表示されます。表示されない場合は、表示しないでください。Visualforceで式&HTMLを使用します。

{! IF(ISBLANK(GoEvent.Event_Time_End__c), '', '<b>End Time:</b> {!GoEvent.Event_Time_End__c}') } 

私の条件設定は適切ですが、HTMLはレンダリングされず、式の適切な値が表示されません。このように見えます。

enter image description here

答えて

0

あなたが頂点にあなたの出力をラップする必要が意図したとおりに動作するようにあなたのコードを取得するには、次のoutputTextと設定エスケープ=「false」に。 https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_security_tips_scontrols.htm

第2に、#が表示されている理由は、あなたが既に!IFを使用してVisualforce構文の中にいるということですので、escape = falseを使用するとセキュリティ上の意味があります。 2番目の{!}構造体。

最後に、ミックスするのではなく、文字列とビジュアルフォースのシンタックスを連結することをお勧めします。

ので、作業バージョンは次のようなものになるだろう:

:あなたのコードが効果的に私はあなたがこのような何かでオフに優れていると思うがnullの出力を示していない場合だけで言っている与えられた、しかし

<apex:outputText value="{! IF(ISBLANK(GoEvent.Event_Time_End__c), '', '<b>End Time:</b>' + GoEvent.Event_Time_End__c) }" escape="false"/> 

<apex:outputPanel layout="false" rendered="{!!ISBLANK(GoEvent.Event_Time_End__c)}"> 
    <b>End Time:</b><apex:outputField value="{!GoEvent.Event_Time_End__c}"/> 
</apex:outputPanel> 

これは、時間が空白でなく、ユーザーロケールなどに基づいて出力フィールドが時間をローカライズする場合にのみレンダリングされる出力です。

関連する問題