Salesforce - 处理可变数量的表单字段

时间:2011-08-17 20:43:29

标签: forms salesforce apex-code

我已经能够在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>
...

我甚至不确定从这个开始......

1 个答案:

答案 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%语法正确;)