Salesforce 如何在visualforce中执行复杂的IF语句?

Salesforce 如何在visualforce中执行复杂的IF语句?,salesforce,visualforce,Salesforce,Visualforce,我对此一无所知,这项任务对我来说非常重要,我以前从未做过这样的事情。我得到了一个模板,其中大致包含以下内容: <apex:column headervalue="Amount"><c2g:CODAFormatterController number="{!IF([some condition],[something],[something else])}"/></apex:column> 我已经用条件/某事/某事替换了这些陈述 有没有一种

我对此一无所知,这项任务对我来说非常重要,我以前从未做过这样的事情。我得到了一个模板,其中大致包含以下内容:

        <apex:column headervalue="Amount"><c2g:CODAFormatterController number="{!IF([some condition],[something],[something else])}"/></apex:column>

我已经用条件/某事/某事替换了这些陈述

有没有一种方法可以像在javascript中那样使用函数

number=“getNumber(x);”

或者我必须以某种方式将一些IF语句链接在一起吗?有没有“如果…”或者“如果…”呢

我不知道CODAFormatterController是什么,因为它在google上返回了0个结果


任何建议都会有帮助的,恐怕我已经陷入了困境

VForce内联线是功能性的,它们最终必须返回一个值,即一个简单的值或一段服务器端代码的调用点。它们不支持命令式编码,并且正在服务器端解决(早在JS发挥作用之前)。在这方面,
IF(condition,valuetrue,valuefalse)
等同于IF..THEN..ELSE..ENDIF

如果没有类型不匹配,您可以随意链接任意数量的函数,这意味着您的valuetrue本身可以是一个函数,包括IF函数本身


通常,当人们遇到此类问题时,总会有一种解决方法,即使用稍微不同的方法。这完全取决于您在这里尝试执行的操作…

VForce内联是功能性的,它们最终必须返回一个值,可以是一个简单的值,也可以是一段服务器端代码的调用点。它们不支持命令式编码,并且正在服务器端解决(早在JS发挥作用之前)。在这方面,
IF(condition,valuetrue,valuefalse)
等同于IF..THEN..ELSE..ENDIF

如果没有类型不匹配,您可以随意链接任意数量的函数,这意味着您的valuetrue本身可以是一个函数,包括IF函数本身


通常,当人们遇到此类问题时,总会有一种解决方法,即使用稍微不同的方法。这完全取决于你在这里尝试做什么…

我自己在visualforce页面上做一些工作时偶然发现了这个问题。无论如何,如果其他人看到这个问题,他们应该知道没有必要使用复杂的嵌套
if
语句,现在Salesforce中有了
CASE
函数

文件-

{!CASE(Opportunity.StageName,
“探矿”、“1”,
“需求分析”,“2”,
“建议书/报价”、“3”,
“默认值”)}

我自己在visualforce页面上做一些工作时偶然发现了这个问题。无论如何,如果其他人看到这个问题,他们应该知道没有必要使用复杂的嵌套
if
语句,现在Salesforce中有了
CASE
函数

文件-

{!CASE(Opportunity.StageName,
“探矿”、“1”,
“需求分析”,“2”,
“建议书/报价”、“3”,
“默认值”)}

最后我做了一个复杂的
IF(x,y,IF(x,y,IF(x,y z))
但是它很难看,因为它都是内联的。最后我做了一个复杂的
IF(x,y,IF(x,y,IF(x,y z))
但是它很难看,因为它都是内联的。
{!CASE(Opportunity.StageName,
            "Prospecting", "1",
            "Needs Analysis", "2",
            "Proposal/Price Quote", "3",
            "default val")} <!-- the last one returns if none of the previous results matched -->