- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要有关正确 VisualForce 语法的帮助以使用“或”逻辑。我使用的代码是:
<apex:page action="{!if($User.Alias !='Item1',
null,
urlFor($Action.Account.Delete, $CurrentPage.Parameters.id, [retURL='/001'], true)
)
}"
standardController="Account">
<apex:pageBlock >
<apex:PageMessage summary="You are not allowed to delete Accounts"
severity="Warning"
strength="3"/>
<apex:pageMessages />
</apex:pageBlock>
</apex:page>
第一行:
{!if($User.Alias !='Item1',
我需要使用“或”逻辑指定多个项目,以便在任何指定的“项目”为真时评估 IF 语句。我想要这样的东西,但我不知道正确的语法是什么:
{!if($User.Alias !='Item1', OR 'Item2', OR 'Item3',
感谢您的协助和耐心等待!
最佳答案
您可以使用逻辑运算符或公式函数来完成。
https://help.salesforce.com/HTViewHelpDoc?id=customize_functions.htm
这就是我所说的“程序员语法”,因为它使用竖线 (||
) 和符号 (&&
);运算符更易于开发人员阅读。
IF($User.Alias = 'JohnDoe' || $User.Alias = 'JBloggs' || $User.Alias = 'FooBar',
value_if_true,
value_if_false
)
您还可以使用“Excel 语法”,其中您有 OR()
函数,可以接受任意数量的参数。
IF(OR($User.Alias = 'JohnDoe', $User.Alias = 'JBloggs', $User.Alias = 'FooBar'),
value_if_true,
value_if_false
)
尽量不要在业务逻辑中使用用户别名。用户可以更改自己的别名,使您的支票失效。看看您是否可以根据 $Profile
、 $UserRole
进行检查,或者在用户记录上创建一些复选框字段,使其仅对系统管理员可编辑...
在此特定场景中 - 有一种方法可以在运行时检查用户是否有权删除帐户。检查 Using apex:relatedList in a Visualforce page when the user profile denies access to child objects(您需要“isDeletable”版本)。
编辑(回复:关于 !
和 !=
的评论)
它在我用过的第一个链接中提到过;)
!=
,有时 <>
是程序员用来写“不等于”的。它看起来与“斜线等号”(≠)非常相似,但不需要记住该字符的一些奇怪代码。这种约定在许多编程语言中几乎是统一的。
就您而言 - 公式和 Visualforce 表达式的语法可以互换使用:
=
和 ==
表示“等于”!=
和 <>
表示“不等于”(后者也适用于 Excel)所以如果你写 IF($User.Alias = 'JohnDoe', 'Allow', 'Deny')
你的意思是只有他会看到“允许”。
还有一件事可能会让您感到困惑 - 否定运算符:!
站在任何表达式前面都会转换为 true ↔ false。这也可以通过将您想要的表达式包装在 NOT(some true/false expression here)
中来实现。
(表示合并字段开始的感叹号并不意味着否定。因此 {!some expression}
仅表示该表达式的逻辑(或数字或文本)值。要否定它,您可以执行 {!!expression}
或 {!NOT(expression)}
。
关于syntax - VisualForce IF 语句 - 需要了解 "or"的语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20671252/
我是一名优秀的程序员,十分优秀!