2012-10-23 47 views
0

在salesforce中,我正在嘗試構建一個將預先填充表單中的多選選擇列表的url。基本上,您按一個帳戶上的新會議按鈕,該帳戶將重定向到新事件。 PageReference重定向返回一個PageReference實例,其中包含用於預先填充的參數的url。但是,多選擇選項列表僅填充第一個選擇。例如:使用salesforce中的pagereference預先填充網址中的mulit select picklist

字符串內置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)將被選擇。如果只需將該內置網址複製並粘貼到地址欄中,則將選擇401(a)和401(k)。爲什麼PageReference會刪除數據?

回答

1

我認爲這可能與頁面引用存儲url參數的方式有關。它將這些參數存儲在地圖中,這意味着如果您多次重複參數名稱,它將被覆蓋。它會做的equivilent:

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

你可能會更好的自己添加url參數並做類似於下面的操作。

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

雖然上面只是一個建議。我不確定url轉義如何影響這個想法,但要回答你原來的問題,我認爲在PageReference對象中使用地圖可能就是爲什麼你只能得到一個選定的值。

相關問題