在salesforce中,我正在尝试构建一个url,它将预先填充表单中的多选选择列表。基本上,您只需按下帐户上的New Meeting按钮,即可重定向到New Event。PageReference重定向返回一个PageReference实例,该实例具有包含预填充参数的url。但是,多选选择选择列表仅填充第一个选择。例如:
构建后的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 );
当我单击New Meeting按钮时,将只选择401(a)。如果只是将构建URL复制并粘贴到地址栏中,则将同时选择401(a)和401(k)。为什么PageReference要剪掉数据?
发布于 2012-10-25 08:38:45
我认为这可能与页面引用存储url参数的方式有关。它将这些参数存储在一个映射中,这意味着如果您多次重复一个参数名称,它将被覆盖。它的作用等同于:
mapParams.put('00NZ0000000LdLp','401(a)');mapParams.put('00NZ0000000LdLp','401(k)');
您最好自己添加url参数,并执行类似于下面的操作。
PageReference引用=新PageReference(url);ref.getParmeters().put('00NZ0000000LdLp','401(a)&00NZ0000000LdLp=401(k)');
尽管上面只是一个建议。我不确定url转义将如何影响这个想法,但为了回答您最初的问题,我认为在PageReference对象中使用映射可能是您只能获得一个选定值的原因。
https://stackoverflow.com/questions/13037529
复制相似问题