0

I need to apply paging logic to this Query. How can i do that?

My query is as follows,

myresultset = from req in myreqTable
              join streq in myStreqTable on req.ID.ToString() equals new SPFieldLookupValue( Convert.ToString( streq[FormID] ) ).LookupValue
              where (filter(req) && filter1(streq))
              join plnts in plantDetails on Convert.ToString( streq[RequestID) equals Convert.ToString(plnts[RequestID]) into mySet
              from s in mySet.DefaultIfEmpty()
              select new Mytable() {
                  FormID = Convert.ToString(streq[FormID]),
                  RequestID = Convert.ToString(streq[RequestID])
              };
Dai
  • 126,861
  • 25
  • 221
  • 322

3 Answers3

3

Add .Skip( pageSize * pageIndex ).Take( pageSize ); to the end of your query. Note that pageIndex is zero-based (so the first page is 0, the second page is 1 and so on).

However your Linq doesn't look valid to me, and has some syntax errors. Are you sure this is your code as it is in your editor?

Dai
  • 126,861
  • 25
  • 221
  • 322
0

Use Take and Skip methods:

myresults = myresults.Skip((page - 1) * pageSize).Take(pageSize);

I assumed page numeration starts from 1.

MarcinJuraszek
  • 121,297
  • 15
  • 183
  • 252
0
recordsForCurrentPage = myresultset.Skip( recordsPerPage * pageNumber ).Take( recordsPerPage )

This is assuming that your page number starts with 0. Otherwise subtract 1 from pageNumber.

Chris
  • 6,647
  • 3
  • 53
  • 78