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

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

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

たとえば、リストビューを使用して取引先の単純なリストを作成するには、次のマークアップを使用してページを作成します。
1swfobject.registerObject("clippy.codeblock-0", "9");
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17<apex:page standardController="Account" recordSetvar="accounts">
18  <apex:pageBlock title="Viewing Accounts">
19  <apex:form id="theForm">
20    <apex:panelGrid columns="2">
21      <apex:outputLabel value="View:"/>
22      <apex:selectList value="{!filterId}" size="1">
23        <apex:actionSupport event="onchange" rerender="list"/>
24        <apex:selectOptions value="{!listviewoptions}"/>
25      </apex:selectList>
26    </apex:panelGrid>
27    <apex:pageBlockSection >
28      <apex:dataList var="a" value="{!accounts}" id="list">
29        {!a.name}
30      </apex:dataList>
31    </apex:pageBlockSection>
32  </apex:form> 
33  </apex:pageBlock>
34</apex:page>

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

このページは、標準取引先コントローラに関連付けられており、<apex:selectlist> コンポーネントは、{!listviewoptions} によって入力されます。{!listviewoptions} を評価することにより、ユーザが表示できるリストビューが得られます。ユーザがドロップダウンリストから値を選択すると、その値はコントローラの filterId プロパティにバインドされます。filterId が変更されると、ページで使用できるレコードが変更されるため、<apex:datalist> が更新されると、その値を使用して、ページで使用できるレコードのリストが更新されます。

次のように編集ページでビューリストを使用することもできます。
1swfobject.registerObject("clippy.codeblock-1", "9");
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17<apex:page standardController="Opportunity" recordSetVar="opportunities" 
18              tabStyle="Opportunity"
19    sidebar="false">
20    <apex:form>
21        <apex:pageBlock>
22            <apex:pageMessages/>
23            <apex:pageBlock>
24                <apex:panelGrid columns="2">
25                    <apex:outputLabel value="View:"/>
26                    <apex:selectList value="{!filterId}" size="1">
27                        <apex:actionSupport event="onchange" rerender="opp_table"/>
28                        <apex:selectOptions value="{!listviewoptions}"/>
29                    </apex:selectList>
30                </apex:panelGrid>
31            </apex:pageBlock>
32
33            <apex:pageBlockButtons>
34                <apex:commandButton value="Save" action="{!save}"/>
35            </apex:pageBlockButtons>
36            <apex:pageBlockTable value="{!opportunities}" var="opp" id="opp_table">
37                <apex:column value="{!opp.name}"/>
38                <apex:column headerValue="Stage">
39                    <apex:inputField value="{!opp.stageName}"/>
40                </apex:column>
41                <apex:column headerValue="Close Date">
42                    <apex:inputField value="{!opp.closeDate}"/>
43                </apex:column>
44            </apex:pageBlockTable>
45        </apex:pageBlock>
46    </apex:form>
47</apex:page>

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

メモ