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

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

多くの 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>

そのページを開くと、次のように表示されます。[ビュー] ドロップダウンリストが含まれ、[すべての取引先] オプションがオンになっている [取引先の参照] ページ

このページは、標準取引先コントローラに関連付けられており、<apex:selectlist> コンポーネントは、{!listviewoptions} によって入力されます。{!listviewoptions} を評価することにより、ユーザが表示できるリストビューが得られます。ユーザがドロップダウンリストから値を選択すると、その値はコントローラの 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> コンポーネントを使用してエラーメッセージをユーザに表示できます。

メモ