2011-08-17 61 views
0

我已經能夠在PHP中做到這一點,但它並沒有很好地轉化爲Salesforce。Salesforce - 表單字段的流程變量數量

我有一個輸入機會的表單。它有一個帳戶,一個聯繫人,以及將用於創建自定義對象的可變數量的字段(對於我來說,機會是一次旅行,而自定義對象是該行程的一段)。 Salesforce控制器需要使用帳戶和聯繫人創建一個新機會(這很容易),但是需要爲旅程的每一段創建一個新的自定義對象(Leg__c)。

我的形式如下:

<input type="text" name="Account" /> 
<input type="text" name="Contact" /> 
<div id="leg0"> 
    <input type="text" name="dep[0]" /> 
    <input type="text" name="arr[0]" /> 
</div> 
<div id="leg1"> 
    <input type="text" name="dep[1]" /> 
    <input type="text" name="arr[1]" /> 
</div> 
... 

我什至不知道從哪裏開始就這一個...

回答

1

假設你知道你有多少腿需要,你可以簡單地創建他們在你的visualforce控制器列表:

public list<Leg__c> liLegs {get; set;}; 

// upon oppty creation: 
liLegs = new list<Leg__c>(); 

for (integer i = 0; i < iNumLegs; i++) 
{ 
    liLegs.add(new Leg__c()); 
} 

那麼你可以遍歷這些在你的頁面,如下所示:

<apex:repeat var="v" value="{!liLegs}"> 
    <apex:inputField value="{!v.Dep__c}"/> 
    <apex:inputField value="{!v.Arr__c}"/> 
</apex:repeat> 

輸入字段將對應於列表中的每個條目中的字段,因此然後在保存操作或任何你正在使用您只需插入列表insert liLegs;

希望這是幫助,我沒有錯過標記,讓我知道如果是這樣! PS。我剛剛在這裏直接寫入此代碼,以便它可能不是100%正確的語法;)

+0

這不是一個壞主意,但我的腿的數量是可變的(我使用jQuery添加點播更多腿) 。 –

+0

啊,這讓事情變得更加棘手。在這樣的情況下,我的解決方案一直是使用參數將我的新字段的值傳遞迴控制器,然後構建分號分隔列表或類似內容。 –