1

カスタムの visualforce ページを作成しました。ここのコントローラー クラスでは、ドロップダウンですべてのワークスペースのリストを取得して、ユーザーがデータを公開する場所を選択できるようにしたいと考えています。

これを達成する方法について、誰かが私にいくつかのガイドラインを提供できますか。

どんな助けでも大歓迎です。:)

4

2 に答える 2

2

コンテンツ ワークスペースにクエリを実行し、それを選択オプション リストに配置して、それを visualforce ページで参照できるようにする必要があります。

頂点コントローラー:

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>

ドキュメンテーション:

于 2011-07-12T18:23:14.653 に答える
0

以下は、Salesforce CRM Content のワークスペースのリストをクエリするための Java コード (コード レシピから) です。以下のコードを apex に変換すると、動作するはずです。

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("user@jstest.org",
                "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());
            }
        }        
    }

}
于 2011-07-05T13:25:03.273 に答える