1

我对此完全陌生,这项任务已被视为重要的任务,而我以前从未做过这样的事情。我得到了一个大致包含以下内容的模板:

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

我已经用条件/东西/其他东西替换了这些语句

有没有办法像在javascript中那样使用函数,所以像

number="getNumber(x);"

还是我必须以某种方式将一些 IF 语句链接在一起?有 IF...ELSE 吗?

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

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

4

2 回答 2

2

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

如果没有类型不匹配,您当然可以自由链接任意数量的函数,这意味着您的 valuetrue 本身可能是一个函数,包括作为一个 IF 函数本身。

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

于 2012-04-27T11:45:42.653 回答
2

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

文档 - https://developer.salesforce.com/docs/atlas.en-us.198.0.pages.meta/pages/pages_variables_functions.htm

{!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 -->
于 2015-10-22T12:22:10.903 回答