我已经能够在PHP中实现这一点,但它并没有很好地转换为Salesforce。
我有一个输入商机的表单。它有一个帐户,一个联系人和可变数量的字段,用于创建自定义对象(为了我的目的,一个机会是旅行,自定义对象是那次旅行的一部分)。 Salesforce控制器需要使用Account和Contact创建一个新的Opportunity(这是一个简单的部分),但是它需要为旅程的每一段创建一个新的自定义对象(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>
...
我甚至不确定从这个开始......
答案 0 :(得分: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%语法正确;)