2017-03-06 136 views
0

我在Opportunity對象上創建了一個自定義按鈕(URL),該按鈕在Visualforce頁面中重定向我以創建一個新的Task。 我想從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> 

請,誰能幫助我? 感謝

回答

0

您可以使用下面的語法來從URL參數讀取值

{!$CurrentPage.parameters.testParam} 
0

您可以設置使用URL黑客攻擊(這是什麼你想幹什麼?),但這是不安全/斑塊狀值和不建議。 Salesforce可以隨時停止支持此功能。

我建議你創建一個控制器擴展,讀取頁面參數並設置字段。

在擴展類的構造函數,你可以設置領域

`

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'); 
    } 
} 

`

的JavaScript選項: 鏈接:?/頂點/ TestVF whatID = 001i000000IsaJu & whatName = Infosys公司

頁碼:

` 
    <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選項到我上面的答案。 –