2014-08-28 107 views
0

我有一個代碼到Visualforce頁面,它顯示指定用戶的特定記錄。此代碼是IF-ELSE方案,假設只有兩個指定的用戶。但是,我想爲不同的記錄指定10個不同的用戶。有誰能幫我解決這個問題嗎?Visualforce頁面顯示指定用戶的特定記錄

Exisitng代碼

/************** Visualforce page *****************/ 
<apex:page controller="myClass" action="{!redirect}" > 

</apex:page> 


/************* Controller ***********************/ 
public with sharing class myClass{ 
public string uId; 

public myClass(){ 
    uId = UserInfo.getUserId(); 
} 

public pageReference redirect(){ 
    PageReference pageRef = new PageReference('URL1'); 
    pageRef.setRedirect(true); 
    if(uId == 'firstOption'){ 
     pageRef.setRedirect(true); 
     return pageRef; 
    }else{ 
     pageRef = new PageReference('URL2'); 
     pageRef.setRedirect(true); 
     return pageRef; 
    } 
} 

}

回答

0

如果你將有多個用戶訪問該頁面,則可以創建一個Hierarchy Custom Setting存儲每個用戶的URL。通過這種方式,您可以通過可配置的方式來維護列表,而無需更新/重新部署代碼。

首先創建一個自定義設置,在這個例子中,我們將其稱爲「用戶重定向」(User_Redirect__c),並將其設置爲層次類型。給它一個名爲「重定向URL」的自定義文本字段(Redirect_Url__c)。

完成後,單擊管理按鈕,然後可以爲用戶(和/或配置文件)添加個人記錄。確保創建一個默認的組織範圍的記錄。

現在,在您的控制器中,您只需引用您的自定義設置即可。

//the system will automatically grab the record for the user if one exists, 
//else a for their profile if a record exists, else the org-default 
String url = User_Redirect__c.getInstance().Redirect_Url__c; 
PageReference pageRef = new PageReference(url); 
//this is implied if redirecting to a different url. you only ever need to set 
//this if you are refreshing the current page and want to reset the state 
//pageRef.setRedirect(true); 
return pageRef; 
+0

工作!謝謝你的幫助斯科特 – user3631781 2014-09-19 09:10:53

相關問題