在Apex页面中使用String.contains

Ian*_*ton 3 salesforce apex-code

<apex:outputField rendered="{!(WidgetType.contains('mywidget1'))}" />
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我得到一个错误......

错误:未知函数WidgetType.contains.检查拼写

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

它会让我这样做......

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

这是控制器中的属性......

public String getWidgetType() {
    return Settings.getWidgetType();
}
Run Code Online (Sandbox Code Playgroud)

Mat*_*t K 7

查看CONTAINS功能文档(粘贴在下面).


描述

比较text的两个参数,如果第一个参数包含第二个参数,则返回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'))}" />
Run Code Online (Sandbox Code Playgroud)

  • 那就对了.您不能在VF页面中使用APEX方法(用户定义或其他方式),但您可以使用功能(可用于公式字段的功能). (2认同)