0

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

构建 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 会删除数据?

4

1 回答 1

1

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

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)');

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

于 2012-10-25T00:38:44.670 回答