Visualforce ページネーションのリストへの追加方法

環境
Salesforce

構文
1.apex:commandLink action="{! Previous}"
ページネーションコントロールの <apex:commmandLink> コンポーネントは、
標準リストコントローラー Previous と Next で提供される 2 つのアクションメソッドを参照します。

2.apex:commandLink action="{! Next }"
ページマークアップは標準リストコントローラー HasPrevious と HasNext で提供される Boolean
プロパティを参照しています。

3.apex:selectOption itemvalue="値1″ itemLabel="値2″
<apex:selectOption> 要素を使用してメニューの値を取得します。

4.apex:actionSupport event="onchange" reRender ="contacts_list"

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<apex:actionSupport> タグは選択値が変更された場合にメニューのアクションを実行し、
reRender="contacts_list" を使用して <apex:pageBlock> のみを更新します。
<apex:actionSupport> タグは選択値が変更された場合にメニューのアクションを実行し、 reRender="contacts_list" を使用して <apex:pageBlock> のみを更新します。
<apex:actionSupport> タグは選択値が変更された場合にメニューのアクションを実行し、
reRender="contacts_list" を使用して <apex:pageBlock> のみを更新します。

操作例

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<apex:page standardController="Contact" recordSetVar="contacts">
<apex:form>
<apex:pageBlock title="Contacts List" id="contacts_list">
検索条件:
<apex:selectList value="{! filterId }" size="1">
<apex:selectOptions value="{! listViewOptions }"/>
<apex:actionSupport event="onchange" reRender="contacts_list"/>
</apex:selectList>
<!-- 取引先リストの取得 -->
<apex:pageBlockTable value="{! contacts}" var="cft">
<!--各項目の表示-->
<apex:column value="{! cft.firstname}"/>
<apex:column value="{! cft.lastname}"/>
<apex:column value="{! cft.Email}"/>
<apex:column value="{! cft.Account.Name}"/>
</apex:pageBlockTable>
<!-- ページナビ-->
<table style="width: 100%">
<tr>
<td>
ページ: <apex:outputText value=" {!PageNumber} of {! CEILING(ResultSize / PageSize) }"/>
</td>
<td align="center">
<!-- 前のページ -->
<!-- active -->
<apex:commandLink action="{! Previous }" value="« 前へ" rendered="{! HasPrevious }"/>
<!-- inactive (no earlier pages) -->
<apex:outputText style="color: #ccc;" value="« 次へ" rendered="{! NOT(HasPrevious) }"/> &nbsp;&nbsp;
<!-- 次のページ -->
<!-- active -->
<apex:commandLink action="{! Next }" value="次へ »" rendered="{! HasNext }"/>
<!-- inactive (no more pages) -->
<apex:outputText style="color: #ccc;" value="次へ »" rendered="{! NOT(HasNext) }"/>
</td>
<td align="right">
<!-- Records per page -->
ページあたりのレコード数:
<apex:selectList value="{! PageSize }" size="1">
<apex:selectOption itemValue="5" itemLabel="5"/>
<apex:selectOption itemValue="20" itemLabel="20"/>
<apex:actionSupport event="onchange" reRender="contacts_list"/>
</apex:selectList>
</td>
</tr>
</table>
</apex:pageBlock>
</apex:form>
</apex:page>
<apex:page standardController="Contact" recordSetVar="contacts"> <apex:form> <apex:pageBlock title="Contacts List" id="contacts_list"> 検索条件: <apex:selectList value="{! filterId }" size="1"> <apex:selectOptions value="{! listViewOptions }"/> <apex:actionSupport event="onchange" reRender="contacts_list"/> </apex:selectList> <!-- 取引先リストの取得 --> <apex:pageBlockTable value="{! contacts}" var="cft"> <!--各項目の表示--> <apex:column value="{! cft.firstname}"/> <apex:column value="{! cft.lastname}"/> <apex:column value="{! cft.Email}"/> <apex:column value="{! cft.Account.Name}"/> </apex:pageBlockTable> <!-- ページナビ--> <table style="width: 100%"> <tr> <td> ページ: <apex:outputText value=" {!PageNumber} of {! CEILING(ResultSize / PageSize) }"/> </td> <td align="center"> <!-- 前のページ --> <!-- active --> <apex:commandLink action="{! Previous }" value="« 前へ" rendered="{! HasPrevious }"/> <!-- inactive (no earlier pages) --> <apex:outputText style="color: #ccc;" value="« 次へ" rendered="{! NOT(HasPrevious) }"/> &nbsp;&nbsp; <!-- 次のページ --> <!-- active --> <apex:commandLink action="{! Next }" value="次へ »" rendered="{! HasNext }"/> <!-- inactive (no more pages) --> <apex:outputText style="color: #ccc;" value="次へ »" rendered="{! NOT(HasNext) }"/> </td> <td align="right"> <!-- Records per page --> ページあたりのレコード数: <apex:selectList value="{! PageSize }" size="1"> <apex:selectOption itemValue="5" itemLabel="5"/> <apex:selectOption itemValue="20" itemLabel="20"/> <apex:actionSupport event="onchange" reRender="contacts_list"/> </apex:selectList> </td> </tr> </table> </apex:pageBlock> </apex:form> </apex:page>
<apex:page standardController="Contact" recordSetVar="contacts">
    <apex:form>
    <apex:pageBlock title="Contacts List" id="contacts_list">
     検索条件:
     <apex:selectList value="{! filterId }" size="1">
        <apex:selectOptions value="{! listViewOptions }"/>
        <apex:actionSupport event="onchange" reRender="contacts_list"/>
      </apex:selectList>
        <!-- 取引先リストの取得 -->
        <apex:pageBlockTable value="{! contacts}" var="cft">
            <!--各項目の表示-->
            <apex:column value="{! cft.firstname}"/>
            <apex:column value="{! cft.lastname}"/>
            <apex:column value="{! cft.Email}"/>
            <apex:column value="{! cft.Account.Name}"/>
        </apex:pageBlockTable>
        <!-- ページナビ-->
            <table style="width: 100%">
           <tr>
    		<td>
       			ページ: <apex:outputText value=" {!PageNumber} of {! CEILING(ResultSize / PageSize) }"/>
    		</td>
   		 <td align="center">
        		<!-- 前のページ -->
        		<!-- active -->
                        <apex:commandLink action="{! Previous }" value="« 前へ" rendered="{! HasPrevious }"/>
                  <!-- inactive (no earlier pages) -->
                        <apex:outputText style="color: #ccc;" value="« 次へ" rendered="{! NOT(HasPrevious) }"/> &nbsp;&nbsp;
        	<!-- 次のページ -->
        		<!-- active -->
                  <apex:commandLink action="{! Next }" value="次へ »" rendered="{! HasNext }"/>
                        <!-- inactive (no more pages) -->
                  <apex:outputText style="color: #ccc;" value="次へ »" rendered="{! NOT(HasNext) }"/>
   		 </td>
   	 <td align="right">
       	 <!-- Records per page -->
        ページあたりのレコード数:
            <apex:selectList value="{! PageSize }" size="1">
    		<apex:selectOption itemValue="5" itemLabel="5"/>
    		<apex:selectOption itemValue="20" itemLabel="20"/>
    		<apex:actionSupport event="onchange" reRender="contacts_list"/>
        </apex:selectList>
    </td>
      </tr>
  </table>
    </apex:pageBlock>
    </apex:form>
</apex:page>

 

Salesforce

Posted by arkgame