この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

標準リストコントローラーによるリストビュー

Visualforce ページにレコードの条件設定済みリストを表示するには、ページを標準リストコントローラーに関連付けます。

多くの Salesforce ページに含まれるリストビューを使用して、ページに表示されるレコードを絞り込むことができます。たとえば、商談ホームページでは、リストビュードロップダウンから [私の商談] を選択して、自分が所有する商談のみのリストを表示できます。リストコントローラーに関連付けられている任意のページでリストビューを作成できます。

たとえば、リストビューを使用して取引先の単純なリストを作成するには、このマークアップを使用してページを作成します。
1<apex:page standardController="Account" recordSetvar="accounts">
2    <apex:pageBlock title="Viewing Accounts">
3        <apex:form id="theForm">
4            <apex:panelGrid columns="2">
5                <apex:outputLabel value="View:"/>
6                <apex:selectList value="{!filterId}" size="1">
7                    <apex:actionSupport event="onchange" rerender="list"/>
8                    <apex:selectOptions value="{!listviewoptions}"/>
9                </apex:selectList>
10            </apex:panelGrid>
11            <apex:pageBlockSection >
12                <apex:dataList var="a" value="{!accounts}" id="list">
13                    {!a.name}
14                </apex:dataList>
15            </apex:pageBlockSection>
16          </apex:form> 
17    </apex:pageBlock>
18</apex:page>

ページは、StandardSetController Apex クラスに基づく標準 Account リストコントローラーに関連付けられています。{!listviewoptions} 式は StandardSetControllergetListViewOptions() メソッドをコールし、使用可能なリストビューに評価されます。ユーザーがドロップダウンから選択する値は、コントローラーの filterId プロパティにバインドされます。filterId が変更されると、ページで使用できるレコードは検索条件に従って変更されます。<apex:datalist> は、更新されたリストビューとして表示されます。

ページには、ユーザーがドロップダウンから選択したリストビューに従って、取引先名の条件設定済みリストが表示されます。

[ビュー] ドロップダウンリストが含まれ、[すべての取引先] オプションがオンになっている [取引先の参照] ページ
編集ページでビューリストを使用することもできます。
1<apex:page standardController="Opportunity" recordSetVar="opportunities" 
2              tabStyle="Opportunity"
3    sidebar="false">
4    <apex:form>
5        <apex:pageBlock>
6            <apex:pageMessages/>
7            <apex:pageBlock>
8                <apex:panelGrid columns="2">
9                    <apex:outputLabel value="View:"/>
10                    <apex:selectList value="{!filterId}" size="1">
11                        <apex:actionSupport event="onchange" rerender="opp_table"/>
12                        <apex:selectOptions value="{!listviewoptions}"/>
13                    </apex:selectList>
14                </apex:panelGrid>
15            </apex:pageBlock>
16
17            <apex:pageBlockButtons>
18                <apex:commandButton value="Save" action="{!save}"/>
19            </apex:pageBlockButtons>
20            <apex:pageBlockTable value="{!opportunities}" var="opp" id="opp_table">
21                <apex:column value="{!opp.name}"/>
22                <apex:column headerValue="Stage">
23                    <apex:inputField value="{!opp.stageName}"/>
24                </apex:column>
25                <apex:column headerValue="Close Date">
26                    <apex:inputField value="{!opp.closeDate}"/>
27                </apex:column>
28            </apex:pageBlockTable>
29        </apex:pageBlock>
30    </apex:form>
31</apex:page>

ユーザーがリストビューを変更した場合、コレクションに変更された行があると例外が発生します。この場合、エラーメッセージの処理は標準動作に従って行われ、ページ上に表示できます。たとえば、<apex:pageMessages> または <apex:messages> コンポーネントを使用してエラーメッセージをユーザーに表示できます。

メモ