我目前正在尝试在Salesforce上自定义对象,并且需要创建一个操作按钮,该按钮将导致新的帐户编辑页面。
我想通过URLFOR函数传递输入来预填充新帐户页面(见下文);在我的示例中,不解释参数值。
<apex:page>
<apex:outputLink value="{! URLFOR( $Action.Account.New, null, [acc2='{! Object__c.Name}'] ) }">New Account</apex:outputLink>
</apex:page>
有没有人知道如何通过顶点的URLFOR传递变量输入?
感谢您的帮助。
Crak
答案 0 :(得分:1)
是的,您正在使用URLFOR功能。
使用
<apex:outputLink value="{! URLFOR( $Action.Account.New, null, [acc2='Acme'] ) }">New Account</apex:outputLink>
我可以使用Acme作为帐户名加载帐户屏幕。
我认为问题在于您获取名称的调用返回null或空白,因此看起来它没有对Name字段应用任何内容。
在您的控制器中,您应该拥有一个属性,可以访问工作记录。得到如下例子的名称。
控制器
Object__c MyCustomObject {get;set;}
页
<apex:outputLink value="{! URLFOR( $Action.Account.New, null, [acc2=MyCustomObject.Name] ) }">New Account</apex:outputLink>
如果不能正常工作,请尝试更改为[acc2 ='MyCustomObject.Name']等
答案 1 :(得分:0)
要获得更通用的解决方案,您可以使用: $ Action.Account [] 当actionName是字符串变量(来自apexclass或自定义设置)时,可以是: 视图:显示对象的详细信息页面 编辑:在编辑模式下显示对象 删除:删除对象的URL 新建:用于创建对象的新记录的URL 选项卡:对象主页的URL
我们可以通过将对象名称更改为变量来实现更通用的
$操作[对象名] [actionName]
例如: VFP:
<apex:page standardController="Account" extensions="urlForParamCTRL"
action="{!urlFor($Action[objectName][actionName],account.Id, null, true)}">
</apex:page>
Apex课程:
public class urlForParamCTRL {
Public String objectName {get;set;}
Public String actionName {get;set;}
public urlForParamCTRL(ApexPages.StandardController controller)
{
this.objectName = 'Account';
this.actionName = 'New';
}
}