با سلام.
این مثال درباره پیاده سازی صفحه بندی توسط LINQ است.
کد های آن به صوت زیر است:
void PageDataBind(int Skip)
{
int take = 2;
dc = new MoviesDataContext();
var query = from m in dc.Movies select m;
int Counter = query.Count();
lblSum.Text = Counter.ToString();
List<myPageing> myP = new List<myPageing>();
for (int i = 0; i < Counter; i = i + take)
{
myP.Add(new myPageing { Value = i, Title = i + 1 });
}
Paging.DataSource = myP;
query = query.Skip(Skip).Take(take);
MovieRepeater.DataSource = query;
MovieGridView.DataSource = query;
MovieDataList.DataSource = query;
Page.DataBind();
}
به کمک Skip و Take میتوانیم عمل صفحه بندی را کنترل کنیم.
skip برای پرش رکورد ها ایت. به طور مثال اگر عدد 23 را به عنوان ورودی بگیرد از رک.رد 23 به بعد را بر میگرداند.
take تعداد رکورد های برگشت داده شده را مشخص میکند.
کد های زیر که از بدنه ی اصلی گرفته شده اند برای ایجاد دسترسی به صفحات هستند. که بعد از بدست آوردن تعداد کل رکورد ها بر اساس تعداد رکورد های برگشت داده شده صفحات را ایجاد میکند.
int Counter = query.Count();
lblSum.Text = Counter.ToString();
List<myPageing> myP = new List<myPageing>();
for (int i = 0; i < Counter; i = i + take)
{
myP.Add(new myPageing { Value = i, Title = i + 1 });
}
Paging.DataSource = myP
برای آموزش LINQ میتوانید به این تاپیک مراجعه کنید.
شاد باشید.



پاسخ با نقل قول





