PDA

View Full Version : سوال: صفحه بندی datalist با entity framework و استفاده از linq



masood1992
جمعه 10 خرداد 1392, 20:30 عصر
سلام
کسی میدونه برای صفحه بندی datalist با entity framework با استفاده از linq باید چیکار کرد ؟؟؟؟ ممنون !

forestasphalt
شنبه 11 خرداد 1392, 09:01 صبح
برای صفحه بندی با linq باید از take وskip استفاده کنی



public string MoreComment(int last_loaded_id, int Limit)
{
CommentSystemEntities Context = new CommentSystemEntities();
var q=from p in Context.tblname select p;
if (last_loaded_id < q.Count())
{
if (last_loaded_id.ToString() != "0")
{

q = (from p in Context.tblname.orderby p.id ascending select p).Skip(last_loaded_id).Take(Limit);
}
else
{
q = (from p in Context.tblname select p).Take(Limit);

}

}
else
{

return "صفحه ای دیگری وجود ندارد";

}
}

باید هر بار آخرین آیدی لود شده به همراه limit(که نشون میده صفحه بندی چند تا چند تا انجام بشه که همون page size هست)
بعد باید بیای اون عدد رو با تعداد کل ایتم هایی که توی جدولت وجود داره مقایسه کنی اگه کمتر بود باید به اندازه همون آخرین ایدی لود شده (مثلا تا الان 10 تا سطررو نشون دادی) skip کنی یعنی اون 10 تا سطری رو که نشون دادی رو نادیده بگیری و به اندازه limit انتخاب کنی
واگر آخرین ایدی خودش صفر بود (یعنی تا حالا چیزی رو نشون نداده بودی) باید فقط به انداز limit بگیری take
اگه متوجه نشدی بگو بیشتر توضیح بدم یا نمونه ای بذارم
موفق باشید

ایمان مدائنی
شنبه 11 خرداد 1392, 10:28 صبح
لینک زیر رو ببین

لینک (http://forums.asp.net/t/1376217.aspx/1)

masood1992
شنبه 11 خرداد 1392, 21:14 عصر
برای صفحه بندی با linq باید از take وskip استفاده کنی



public string MoreComment(int last_loaded_id, int Limit)
{
CommentSystemEntities Context = new CommentSystemEntities();
var q=from p in Context.tblname select p;
if (last_loaded_id < q.Count())
{
if (last_loaded_id.ToString() != "0")
{

q = (from p in Context.tblname.orderby p.id ascending select p).Skip(last_loaded_id).Take(Limit);
}
else
{
q = (from p in Context.tblname select p).Take(Limit);

}

}
else
{

return "صفحه ای دیگری وجود ندارد";

}
}

باید هر بار آخرین آیدی لود شده به همراه limit(که نشون میده صفحه بندی چند تا چند تا انجام بشه که همون page size هست)
بعد باید بیای اون عدد رو با تعداد کل ایتم هایی که توی جدولت وجود داره مقایسه کنی اگه کمتر بود باید به اندازه همون آخرین ایدی لود شده (مثلا تا الان 10 تا سطررو نشون دادی) skip کنی یعنی اون 10 تا سطری رو که نشون دادی رو نادیده بگیری و به اندازه limit انتخاب کنی
واگر آخرین ایدی خودش صفر بود (یعنی تا حالا چیزی رو نشون نداده بودی) باید فقط به انداز limit بگیری take
اگه متوجه نشدی بگو بیشتر توضیح بدم یا نمونه ای بذارم
موفق باشید

اگر واستون زحمتی نداره میشه یه نمونه بزارید ؟؟؟ ممنون