我假設你問如何在我的答案下面設置查找字段。但是,如果您詢問如何刪除查找字段,則需要編輯PageLayout,但這也會從編輯頁面中刪除字段。如果需要編輯頁面上的字段,但不需要創建頁面,則需要爲對象創建新的創建Visualforce頁面,並將重定向設置爲該頁面。
創建頁面是沒有id
參數的編輯頁面。你的代碼應該工作:
PageReference ref = new PageReference('/a00/e');
要通過PageReference
更改發送到新的頁面中的任何參數,使用getParameters()
方法。下面的示例爲帳戶查找輸入一個參數(CF00NC0000004htI5
是我的開發版中的字段ID)。
PageReference.getParameters().put('CF00NC0000004htI5', 'sForce');
可通過轉到設置>創建>對象> [您的對象]> [您的字段]找到字段標識。一旦到達,請在/
(但在?
之前,如果有?
)之後的頁面地址(URL)中查找字段Id。例如,我的字段URL是:https://instance.salesforce.com/00NC0000004htI5?setupid=CustomObjects
。一旦你有了ID,在它之前加上CF
。
對於查找字段,您可能還需要設置CF
+ FieldId + _lktp
參數。這設置了引用記錄的Id。
下面是我用來獲取下一頁的完整方法。
public PageReference NextPage()
{
Account a = [Select Id, Name From Account Where Name like '%sForce%' Limit 1];
PageReference myPage = new PageReference('/a03/e');
// set the ID on a lookup field
myPage.getParameters().put('CF00NC0000004htI5_lktp', a.Id);
// set the Name on a lookup field
myPage.getParameters().put('CF00NC0000004htI5', a.Name);
myPage.setRedirect(true);
return myPage;
}
太麻煩了,但我只能通過這種方式實現。爲什麼salesforce不提供一些簡單的方法。 – Dozer 2012-04-25 01:36:05
還有一個問題。當我從開發環境發佈我的對象到生產環境時,它會(id)發生改變嗎? + Matthew Keefe – Dozer 2012-04-26 02:26:35
可能。如果您在刷新沙箱之前在生產中創建了該字段,則ID將相同。如果您在沙箱中創建了該字段,則ID將會不同。 – 2012-04-26 12:29:11