Visualforce入门第六篇_2017.3.1
Visualforce实现过滤、数据列表显示、分页功能
可以参考salesforce官网开发文档:https://trailhead.salesforce.com/modules/visualforce_fundamentals/units/visualforce_standard_list_controllers
代码如下:
<apex:page sidebar="false" standardController="Contact" recordSetVar="contacts"> 
    <apex:form>
        
       		<apex:pageBlock title="Contact List" id="contacts_list">
                
       			 Filter:
        		  <apex:selectList value="{!filterId}" size="1">
            	  	<apex:selectOptions value="{!listViewOptions}"/>
            	  	<apex:actionSupport event="onchange" reRender="contacts_list"/>
        		  </apex:selectList> 
                
                
       	    <!--Contacts List-->
            <apex:pageBlockTable value="{!contacts}" var="ct">
           		 <apex:column value="{!ct.FirstName}"/>
            	 <apex:column value="{!ct.LastName}"/>
           		 <apex:column value="{!ct.Phone}"/>
           		 <apex:column value="{!ct.Title}"/>
        	</apex:pageBlockTable>
                
                  <!--Pagination-->
                <table style="width:100%">
                    <tr>
                        <td>
                            Page:
                            <apex:outputText value="{!PageNumber} of {!CEILING(ResultSize / PageSize)}"/>
                        </td>
                        <td align="center">
                            <apex:commandLink action="{!Previous}" value="<<Previous" rendered="{!HasPrevious}"/>
                            <apex:outputText style="color:#ccc;" value="<<Previous" rendered="{!NOT(HasPrevious)}"/>
                            
                              
                            
                            <apex:commandLink action="{!Next}" value="Next>>" rendered="{!HasNext}"/>
                            <apex:outputText style="color:#ccc;" value="Next>>" rendered="{!NOT(HasNext)}"/>
                        </td>
                        <td align="right">
                            Record 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>
代码解释:
1、在实现分页功能中,使用三个属性来指示多少页:PageNumber(当前页数) ResultSize(总的页面大小) PageSize(每一页的大小)
2、使用表达式{! HasPrevious}?这就是Visualforce如何使您能够有条件地显示组件,也就是说,这取决于布尔表达式的结果。这里,页面标记引用标准列表控制器HasPrevious和HasNext提供的布尔属性,它允许您知道给定方向上是否有更多记录。通过使用呈现的属性中的表达式,您可以在页面上显示或隐藏该组件的结果。这是前一个链接在您首次加载页面时显示为灰色,但如果您通过单击下一个链接向前移动,则会变为活动状态。
实现的效果图:

 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号