Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I am working on an ASP.NET application and I am creating a LINQ query which will select paginated records from db. on user interface I have a listbox where user can select multiple choices. I want to know:

  • How can I increment Skip(), Take() parameters to view next results ?

  • How can I use "IN" key word so that if user selects multiple options from listbox, query can check all values ?

My query looks like this:

var searchResults = context.data_vault.Where(d => d.STATE == lstStates.SelectedItem.Text).OrderBy(d= > d.dv_id).Take(10).Skip(2);    
GridView1.DataSource = searchResults;
GridView1.DataBind();
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
456 views
Welcome To Ask or Share your Answers For Others

1 Answer

I think you are using Skip incorrectly. It should be before the Take.

Skip skips a number of records, so for your first page, pass in 0, else pass in the (page number - 1) * records per page.

I usually do something like this:

int Page = 1;
int RecordsPerPage = 10;
var q = yourQuery.Skip((Page - 1) * RecordsPerPage).Take(RecordsPerPage);

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share

548k questions

547k answers

4 comments

86.3k users

...