2012-03-26 32 views
3
<apex:outputField rendered="{!(WidgetType.contains('mywidget1'))}" /> 

當我這樣做,我得到一個錯誤......使用String.contains在頂點頁

Error: Unknown function WidgetType.contains. Check spelling

...即使WidgetType返回一個字符串!

它可以讓我這樣做雖然...

rendered="{!(WidgetType == 'mywidget1')}"

這裏是控制器的特性...

public String getWidgetType() { 
    return Settings.getWidgetType(); 
} 

回答

7

時退房CONTAINS功能documentation(粘貼下面)。


說明

比較兩個文本參數,如果第一個參數包含第二個參數返回TRUE。如果不是,則返回FALSE。

以下示例檢查名爲Product_Type的自定義文本字段的內容,併爲其中包含單詞「part」的任何產品返回「Parts」。否則,它返回「服務」。 {!IF(contains(opportunity.Product_Type__c, "part"), "Parts", "Service")}

此功能區分大小寫,因此請確保您的compare_text值具有正確的大寫。

使用

CONTAINS(text, compare_text),幷包含compare_text的值的文本替換文本。


在你的情況,你就需要使用這樣的:

<apex:outputField rendered="{!(CONTAINS(WidgetType,'mywidget1'))}" /> 
+2

沒錯。您不能在VF頁面中使用APEX方法(用戶定義或其他方法),但可以使用功能(可用於公式字段的功能)。 – barelyknown 2012-03-26 14:51:02

+1

另外,如果您想要從JavaScript調用Apex方法,請使用apex:actionFunction。 – Adam 2012-03-27 17:34:08

+1

或[JavaScript Remoting](http://www.salesforce.com/us/developer/docs/pages/Content/pages_js_remoting.htm)。 :) – 2012-03-27 18:30:31

0

<apex:outputPanel rendered="{!(contains('long_string','short_string_to_check'))}" />

這對我的作品。