2017-03-06 43 views
0

Opportunityオブジェクトにカスタムボタン(URL)を作成しました。これは、Visualforceページで私をリダイレクトして新しいタスクを作成します。 私は、URLからパラメータの値を取得するために、いくつかの値を入力しましたが、機能しません。私はコントローラを使用していません。ここでURL標準オブジェクトからパラメータを取得

/apex/TaskPage?who_id={!Opportunity.AccountId}&what_id={!Opportunity.Id}&retURL={!Opportunity.Id} 

私のVisualforceページがされています:

<apex:page standardController="Task"> 
<apex:form > 
    <apex:pageBlock title="New Task"> 
     <apex:pageBlockButtons > 
      <apex:commandButton action="{!save}" value="Save"/> 
     </apex:pageBlockButtons> 
     <apex:pageBlockSection columns="2" title="Task Information"> 
      <apex:inputField value="{!Task.OwnerId}" id="userName" required="true"/> 
      <apex:inputField value="{!Task.Status}"/> 
      <apex:inputField value="{!Task.Subject}"/> 
      <apex:inputField value="{!Task.WhatId}"/> 
      <apex:inputField value="{!Task.ActivityDate}"/> 
      <apex:inputField value="{!Task.WhoId}"/> 
      <apex:inputField value="{!Task.Priority}"/> 
     </apex:pageBlockSection> 
     <apex:pageBlockSection title="Description Information"> 
      <apex:inputField value="{!Task.Description}"/> 
      <apex:inputField value="{!Task.Test__c}"/> 
     </apex:pageBlockSection> 
    </apex:pageBlock> 
</apex:form> 

、誰も私を助けることができるしてくださいここで は、URLのですか? おかげ

答えて

0

あなたはURLパラメータから値を読み取るための構文の下に使用することができます

{!$CurrentPage.parameters.testParam} 
0

あなたは(あなたがやろうとしているものである?)ハッキングURLを使用して値を設定することができますが、これは斑状/保護されていないで、お勧めしません。 Salesforceはいつでもこの機能のサポートを停止できます。

コントローラ拡張を作成し、その中にページパラメータを読み込んでフィールドを設定することをお勧めします。 リンク:?/頂点/ TestVF whatID = 001i000000IsaJu & whatName =インフォシス

拡張クラスのコンストラクタでは、

`

Javascriptのオプション

`

public class TaskExtension { 
    public Task currentTask{get; set;} 
    public TaskExtension(ApexPages.StandardController stdController){ 
     if(currentTask == null) currentTask = new Task(); 
     currentTask.whoid = ApexPages.currentPage().getParameters().get('who_id'); 
    } 
} 
ようにフィールドを設定することができます

Page:

` 
    <apex:page standardController="Task"> 
    <apex:form > 
     <apex:pageBlock title="New Task"> 
      <apex:pageBlockButtons > 
       <apex:commandButton action="{!save}" value="Save"/> 
      </apex:pageBlockButtons> 
      <apex:pageBlockSection columns="2" title="Task Information"> 
       <apex:inputField value="{!Task.OwnerId}" id="userName" required="true"/> 
       <apex:inputField value="{!Task.Status}"/> 
       <apex:inputField value="{!Task.Subject}"/> 
       <apex:inputField id="whatID" value="{!Task.WhatId}"/> 
       <script> 
        document.getElementById('{!$Component.whatID}' + '_lkid').value = '{!$CurrentPage.parameters.whatID}' ; 
        document.getElementById('{!$Component.whatID}' + '_lkold').value = '{!$CurrentPage.parameters.whatName}' ; 
        document.getElementById('{!$Component.whatID}' + '_mod').value = '1' ; 
        document.getElementById('{!$Component.whatID}').value = '{!$CurrentPage.parameters.whatName}' ; 
       </script> 
       <apex:inputField value="{!Task.ActivityDate}"/> 
       <apex:inputField value="{!Task.WhoId}"/> 
       <apex:inputField value="{!Task.Priority}"/> 
      </apex:pageBlockSection> 
      <apex:pageBlockSection title="Description Information"> 
       <apex:inputField value="{!Task.Description}"/> 
      </apex:pageBlockSection> 
     </apex:pageBlock> 
    </apex:form> 
    </apex:page> 
` 
+0

ありがとうございますが、私はコントローラ拡張機能を使いたくありません。 –

+0

上記の私の答えにJavascriptオプションを追加する。 –