Solved

how do you calculate the last page of results in a list

Posted on 2010-08-27
2
387 Views
Last Modified: 2012-05-10
I'm trying to calculate the first and last page of records in a list.  For example, if the returned list contained 100 records and page could display 10 records per page, I am trying to create a method to grab the first 10 records for a link that would take the user to the first 10 records in the list and then another link "last" that would take the user to the last 10 records in the list.

I have an existing method that takes the user to the next and previous set of records (see code below).  How can I get the first and last pages?

This relates to Salesforce apex programming, but I'm asking in the .net and c# zones because the logic should be similar.

Thanks for any help.
/* getlistContact returns the list of Contacts upto 10 per page implementing pagination*/    

    Public List<Contact> getlistContact()

    {

      return contactList_Next ;

    }

    

    /*  Previous method has the logic for displaying the list of Next contacts from Contact object implementing pagination*/ 

    Public void Next()

    { 

        try

        {

            showprev = true;

            contactList_Next.clear();

            Integer limit1 = 0;

  

            if(next+countPerPage < contactList.size())

                limit1 = next+countPerPage;

            else

            {

                limit1 = contactList.size();

                shownext = false;

            }

                

            for(Integer i=next; i<limit1; i++)

            contactList_Next.add(contactList[i]);

    

            Next+=countPerPage;

            

        }catch(Exception e){system.debug('Exception :'+e);}

    }

    

  /*  Previous method has the logic for displaying the list of previous contacts from Contact object implementing pagination*/    

    Public void Prev()

    {

        try

        {

            shownext = true;

            contactList_Next.clear();

            Integer limit1 = 0;        

            if(next-(countPerPage+countPerPage) > 0)

                limit1 = next-countPerPage;

            else

            {

                limit1 = next-countPerPage; 

                showprev = false;

            }

    

            for(Integer i=next-(countPerPage+countPerPage); i<limit1; i++)    

            contactList_Next.add(contactList[i]);

            Next-=countPerPage; 

        }catch(Exception e){

          system.debug('Exception :'+e);

        }               

    }

Open in new window

0
Comment
Question by:-Dman100-
2 Comments
 
LVL 6

Accepted Solution

by:
DalHorinek earned 250 total points
Comment Utility
If you want last 10 items in a list, then do this in pseudocode

limit = 10;
list_size = list.size(); // size of the list
index = list_size - limit -1 // index where to start (size of the list - limit and -1 (cuz indexing starts at zero, we know)

result = new List; // new list
for (i = index; i != list_size; i++)
      result.push(list[i]); // push last 10 items into new list

return result; // return it

But I'm not sure If I have understood correctly.
0
 
LVL 16

Assisted Solution

by:SriVaddadi
SriVaddadi earned 250 total points
Comment Utility

Add "using System.Linq;"

Below code gives you the last 10 records

  List<Contact> list = new List<Contact>();
            Contact[] lastPage = new Contact[10];
            list.CopyTo(list.Count-10, lastPage, 0, 10);
            List<Contact> lastPageList = lastPage.ToList<Contact>();
0

Featured Post

Why You Should Analyze Threat Actor TTPs

After years of analyzing threat actor behavior, it’s become clear that at any given time there are specific tactics, techniques, and procedures (TTPs) that are particularly prevalent. By analyzing and understanding these TTPs, you can dramatically enhance your security program.

Join & Write a Comment

Introduction This article shows how to use the open source plupload control to upload multiple images. The images are resized on the client side before uploading and the upload is done in chunks. Background I had to provide a way for user…
It was really hard time for me to get the understanding of Delegates in C#. I went through many websites and articles but I found them very clumsy. After going through those sites, I noted down the points in a easy way so here I am sharing that unde…
Internet Business Fax to Email Made Easy - With eFax Corporate (http://www.enterprise.efax.com), you'll receive a dedicated online fax number, which is used the same way as a typical analog fax number. You'll receive secure faxes in your email, fr…
This video explains how to create simple products associated to Magento configurable product and offers fast way of their generation with Store Manager for Magento tool.

743 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now