我目前正在尝试自定义Salesforce上的对象,并需要创建一个操作按钮,将导致一个新的帐户编辑页面。
我希望通过URLFOR函数传递输入来预先填充新的帐户页面(见下文);在我的示例中,参数值不会被解释。
<apex:page>
<apex:outputLink value="{! URLFOR( $Action.Account.New, null, [acc2='{! Object__c.Name}'] ) }">New Account</apex:outputLink>
</apex:page>有没有人知道如何在apex中通过URLFOR传递变量输入?
谢谢你的帮助。
岩屑
发布于 2012-10-14 15:59:25
是的,您正确地使用了URLFOR函数。
使用
<apex:outputLink value="{! URLFOR( $Action.Account.New, null, [acc2='Acme'] ) }">New Account</apex:outputLink>我可以使用Acme作为帐户名称加载帐户屏幕。
我认为问题在于获取name的调用返回的是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‘等
发布于 2017-03-28 00:48:31
要获得更通用的解决方案,您可以使用:$ URL when actionName是字符串变量(来自apexclass或自定义设置)可以是:视图:显示对象的详细页编辑:在编辑模式下显示对象删除:用于删除对象的Action.Account[]新建: URL创建对象的新记录标签:指向对象主页的URL
我们还可以通过将对象名更改为变量来实现更一般的操作
$ActionobjectName
例如: VFP:
<apex:page standardController="Account" extensions="urlForParamCTRL"
action="{!urlFor($Action[objectName][actionName],account.Id, null, true)}">
</apex:page>顶点类:
public class urlForParamCTRL {
Public String objectName {get;set;}
Public String actionName {get;set;}
public urlForParamCTRL(ApexPages.StandardController controller)
{
this.objectName = 'Account';
this.actionName = 'New';
}
}https://stackoverflow.com/questions/12868425
复制相似问题