2011-07-04 16 views

回答

2

您需要查詢內容工作區,然後將它們放入選擇選項列表中,然後可以在Visualforce頁面中引用它們。

的Apex控制器:

public Id selectedWorkspaceId { get; set; } 

private List<SelectOption> workspaceOptions; 
public List<SelectOption> getWorkspaceOptions() { 
if(workspaceOptions == null) { 
    for(ContentWorkSpace workspace : [select id, name from ContentWorkspace]) { 
    workspaceOptions.addNewSelectOption(
    new SelectOption(workspace.id, workspace.name); 
    } 
    } 
} 
return workspaceOptions; 
} 

Visualforce頁:

<apex:selectList value="{!selectedWorkspaceId}" size="1"> 
<apex:selectOptions value="{!workspaceOptions}"/> 
</apex:selectList> 

文檔:

+0

拉爾夫我得到了這個工作,但我無法得到所選工作區的價值屬性命名= selectedWorkspaceId在我的控制器類它總是顯示null.Any建議我怎麼能得到這個.. – Swati

+0

拉爾夫與這我可以得到所有共享的工作區,但個人workspace.cant得到任何有關它的信息 – Swati

+0

文檔(請參閱鏈接對於ContentWorkspace文檔的答案)似乎暗示無法查詢個人工作區。 「這個對象不適用於個人圖書館。」您可能希望記錄支持案例,看看他們是否有其他見解。爲了僅獲取正在運行的用戶可見的共享工作區,我相信您可以在類定義中使用「with sharing」關鍵字(未經測試)。 –

0

下面是Java代碼(從代碼reciepe)到查詢Salesforce CRM Content中的工作區列表。將代碼轉換爲頂點,它應該可以工作。

package com.sforce; 

import org.apache.axis.client.Stub; 

import com.sforce.soap.enterprise.*; 
import com.sforce.soap.enterprise.sobject.*; 

public class QueryWorkspace { 

    /** 
    * @param args 
    */ 

    public static void main(String[] args) { 
     QueryWorkspace queryWorkspace = new QueryWorkspace(); 
     try { 
      queryWorkspace.queryAvailableWorkspaces(); 
     } catch (Exception ex) { 
      ex.printStackTrace(System.err); 
     } 
    } 

    private void queryAvailableWorkspaces() throws Exception { 

     SforceServiceLocator sforceServiceLocator 
      = new SforceServiceLocator(); 

     SoapBindingStub binding 
      = (SoapBindingStub) sforceServiceLocator.getSoap(); 

     // Login 

     LoginResult lr = binding.login("[email protected]", 
       "password"); 

     binding._setProperty(Stub.ENDPOINT_ADDRESS_PROPERTY, 
       lr.getServerUrl()); 

     // Create a session header for subsequent calls 

     _SessionHeader sessionHeader = new _SessionHeader(); 
     sessionHeader.setSessionId(lr.getSessionId()); 
     binding.setHeader(sforceServiceLocator.getServiceName() 
       .getNamespaceURI(), "SessionHeader", 
     sessionHeader); 

     QueryResult query 
      = binding.query("select Id, Name from" 
      + " ContentWorkspace"); 

     SObject[] records = query.getRecords(); 
     if (records != null) { 
      for (int i = 0; i < records.length; i++) { 
       ContentWorkspace contentWorkspace = 
        (ContentWorkspace)records[i]; 
       System.out.println("Workspace Id:" 
         + contentWorkspace.getId() + " Name:" 
         + contentWorkspace.getName()); 
      } 
     }   
    } 

} 
+0

我看到這一點,並試圖將其轉化爲按我的要求,但不能done.hope有人做過這APEX。 – Swati

+0

你可以請你分享一個你試過的Apex代碼,也許你錯過了一些非常小的東西.. –

+0

忽略上面的評論(我剛剛注意到答案評論) –

相關問題