在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会删除数据?
答案 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对象中使用地图可能就是为什么你只得到一个选定的值。