使用salesforce中的pagereference从URL填充多选选择列表

时间:2012-10-23 19:13:33

标签: salesforce apex-code

在salesforce中,我正在尝试构建一个将在表单中预填充多选选项列表的URL。基本上,您按下帐户上的“新建会议”按钮,该按钮会重定向到新事件。 PageReference重定向返回一个PageReference实例,其中包含用于预填充的参数的url。但是,多选选择列表仅使用第一个选择填充。例如:

内置网址的字符串:

url = 'https://cs11.salesforce.com/00U/e?00NZ0000000LdLp=401%28a%29&00NZ0000000LdLp=401%28k%29';

多选选项列表的字段ID为00NZ0000000LdLp,在上面的URL中重复,因此将所选字段填充为401(a)和401(k)

然后重定向方法返回:

return new PageReference( url );

单击“新建会议”按钮时,将仅选择401(a)。如果只是将构建的URL复制并粘贴到地址栏中,则将选择401(a)和401(k)。为什么PageReference会删除数据?

1 个答案:

答案 0 :(得分:1)

我认为这可能与页面引用存储url参数的方式有关。它将这些参数存储在一个映射中,这意味着如果多次重复一个param名称,它将被覆盖。它会做相同的:

mapParams.put( '00NZ0000000LdLp', '401的(a)'); mapParams.put( '00NZ0000000LdLp', '的401(k)');

您可能最好自己添加url参数并执行类似下面的操作。

PageReference ref = new PageReference(url); ref.getParmeters()。put('00NZ0000000LdLp','401(a)& 00NZ0000000LdLp = 401(k)');

以上只是一个建议。我不确定网址转义会如何影响这个想法,但回答你原来的问题我认为在PageReference对象中使用地图可能就是为什么你只得到一个选定的值。