0

現在、Salesforce のオブジェクトをカスタマイズしようとしており、新しいアカウント編集ページにつながるアクション ボタンを作成する必要があります。

URLFOR 関数 (以下を参照) を介して入力を渡すことにより、新しいアカウント ページを事前入力したいと考えています。私の例では、パラメーター値は解釈されません。

<apex:page>
  <apex:outputLink value="{! URLFOR( $Action.Account.New, null, [acc2='{! Object__c.Name}'] ) }">New Account</apex:outputLink>
</apex:page>

URLFOR で apex を介して変数の入力を渡す方法について誰か考えがありますか?

ご協力いただきありがとうございます。

クラック

4

2 に答える 2

1

はい、URLFOR 関数を正しく使用しています。

使用する

<apex:outputLink value="{! URLFOR( $Action.Account.New, null, [acc2='Acme'] ) }">New Account</apex:outputLink>

アカウント名として Acme を使用してアカウント画面を読み込むことができました。

問題は、名前を取得するための呼び出しが null または空白を返すため、名前フィールドに何も適用されていないように見えることだと思います。

コントローラーには、作業レコードにアクセスできるプロパティが必要です。次の例のように名前を取得します。

コントローラ

Object__c MyCustomObject {get;set;}

ページ

<apex:outputLink value="{! URLFOR( $Action.Account.New, null, [acc2=MyCustomObject.Name] ) }">New Account</apex:outputLink>

そのままでうまくいかない場合は、[acc2='MyCustomObject.Name'] などに変更してみてください

于 2012-10-14T07:59:25.330 に答える
0

$Action.Account[] actionName が文字列変数の場合 (apexclass またはカスタム設定から): View: オブジェクトの詳細ページを表示 Edit: 編集モードでオブジェクトを表示 Delete: URLオブジェクトの削除 New: オブジェクトの新しいレコードを作成するための URL タブ: オブジェクトのホームページへの URL

オブジェクト名も変数に変更することで、さらに一般的にすることができます

$Action[オブジェクト名][アクション名]

例: 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://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_dynamic_vf_globals_action.htm

于 2017-03-27T16:48:30.590 に答える