改ページ

参照

Controllerクラス内で、StandardSetControllerを作成したら
setPageSize()で1ページあたりに表示する最大レコード数をセットします。
next()で次のページへ、
previous()で前のページへ、
first()で最初のページへ、
last()で最後のページへ、
getHasNext()で次のページがあるかどうかを取得、
getHasPrevious()で前のページがあるかどうかを取得、
getPageNumber()で現在のページ番号を取得、
getResultSize()で総レコード数を取得

public ApexPages.StandardSetController setCon { get; set; }

 setCon = new ApexPages.StandardSetController(Database.getQueryLocator([select id from object__c where id in:ids]));   			
	    	// 画面サイズ
	    	setCon.setPageSize(PAGESIZE);
	    	system.debug('=========plantList========'+plantList);
	    	makeDisClass((List<PlantApply__c>)setCon.getRecords());

/*
    * 最初のページへ
    */
    public void getfirst(){
    	setCon.first();
    	makeDisClass( (List<PlantApply__c>)setCon.getRecords() );
    }
	
	/*
    * 前のページへ
    */
    public void getPrevious(){
    	setCon.previous();
    	makeDisClass( (List<PlantApply__c>)setCon.getRecords() );
    }
    
    /*
    * 次のページへ
    */
    public void getNext(){
    	setCon.next();
    	makeDisClass( (List<PlantApply__c>)setCon.getRecords() );
    }
    
     /*
    * 最後のページへ
    */
    public void getlast(){
    	setCon.last();
    	makeDisClass( (List<PlantApply__c>)setCon.getRecords() );
    }

  /*
    *
    * 画面表示用リストを作成
    *
    */
    private void makeDisClass( List<PlantApply__c> results ){
		// 表示用リスト
        this.disList = new List<DisClass>();
        // 選択されたのレコードID
        this.selectedId = null;
        
    	// 表示用リストを作成する
    	for( PlantApply__c pa : results ){
    		this.disList.add(new DisClass(pa,false));
    	}
    	// 該当画面番号
    	currentPageNo = setCon.getPageNumber();
    	resultSize = setCon.getResultSize();
    	if(currentPageNo*PAGESIZE > resultSize){
    		showMaxSize = resultSize;
    	}else{
    		showMaxSize = currentPageNo*PAGESIZE+1;
    	}    	
    }

ページ番号表示

public List<Integer> getPageNo(){
    	Integer disNo = 4;
    	List<Integer> noList = new List<Integer>();
    	// 総頁数
    	Integer totalPageNo = (Integer)((Decimal)resultSize/PAGESIZE).round(System.RoundingMode.UP);
    	// Loop回数
    	Integer roundPageNo = (Integer)((Decimal)currentPageNo/disNo).round(System.RoundingMode.UP);
    	// 開始頁数
    	Integer pageStartNo = ( roundPageNo == 1 ? 1 : roundPageNo * disNo - disNo + 1 );
    	// 終了頁数
    	Integer pageEndNo = ( roundPageNo*disNo > totalPageNo ? totalPageNo : roundPageNo*disNo );
    	
    	for( Integer i = pageStartNo; i <= pageEndNo; i++  ){
    		noList.add(i);
    	}
    	return noList;
    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值