標準リストコントローラによるリストビューの使用
多くの 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>そのページを開くと、次のように表示されます。![[ビュー] ドロップダウンリストが含まれ、[すべての取引先] オプションがオンになっている [取引先の参照] ページ](https://developer.salesforce.com/docs/resources/img/ja-jp/196.0?doc_id=images%2Fcustom_sosc_viewlist.jpg&folder=pages)
このページは、標準取引先コントローラに関連付けられており、<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>