View Full Version : آموزش: صفحه بندی DataGridView
reza-abi
پنج شنبه 15 مهر 1389, 10:55 صبح
سلام به همه ی بچه های خوب برنامه نویس
با این پروژه (که شاید هم زیاد در موردش بحث شده وتکراری باشه)می تونید حجم زیاد دادههای را به راحتی مدیریت کنید (صفحه بندی داده ها) به راحتی میتوانید تعیین کنید چه تعداد از رکوردها در هر صفحه نمایش داده شود فقط کافیه بعد از دانلود پروژه دیتا بیس خودتون رو به پروژه اضافه کنید و کوئری دریافت داده ها مطابق با خواسته خودتون تنظیم کنید .
همین دیگه
اینم یه نمونه یه Picture Box خشگل WPF به سبک Win7 :
http://barnamenevis.org/forum/showthread.php?t=251795
armsoftpc
دوشنبه 11 دی 1391, 21:29 عصر
سلام
دوست گرامی این صفحه بند دیتاگرید هم مثل تاپیک های دیگر در تعداد سطرهای بالا، کم میاره، چون یه دفعه تمام سطرها رو استخراج میکنه که این کار غلط است، باید ابتدا تعداد سطرها رو بدست بیاره(select conunt ...)، بعد محاسبات لازم رو انجام بده و سپس با استفاده از دستور limit فقط اون تعداد سطری که می خواد رو نمایش بده.(مثلا می خواد توی صفحه 20 سطر از صفحه 12 نمایش بده).
میتونید به تاپیک http://barnamenevis.org/showthread.php?362120-%DA%A9%D9%86%D8%AA%D8%B1%D9%84-%D8%B5%D9%81%D8%AD%D9%87-%D8%A8%D9%86%D8%AF%DB%8C-%D8%AF%DB%8C%D8%AA%D8%A7%DA%AF%D8%B1%DB%8C%D8%AF%D 9%88%DB%8C%D9%88-%D9%88-%D9%84%DB%8C%D8%B3%D8%AA-%D9%88%DB%8C%D9%88-%28%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF-%DA%A9%D9%86%DB%8C%D8%AF%29
مراجعه کنید، اون جا بیشتر توضیح دادم.
sia_2007
سه شنبه 12 دی 1391, 08:32 صبح
با استفاده از Take و Skip نیازی به محاسبه تعداد کل نیست، به شرطی که مشتری نیاز به دونستن تعداد کل صفحات نداشته باشه
armsoftpc
چهارشنبه 13 دی 1391, 13:58 عصر
با استفاده از Take و Skip نیازی به محاسبه تعداد کل نیست، به شرطی که مشتری نیاز به دونستن تعداد کل صفحات نداشته باشه
میشه واضح تر توضیح بدین.
sia_2007
چهارشنبه 13 دی 1391, 16:21 عصر
با Linq برای مثال در Entity Framework یک بار می نویسید
Context.Customers.OrderBy(cust => cust.ID).Skip(0).Take(20) aaaaaaaaaaaaaaaaaaaaaaaaaaaaa
سری بعدی
Context.Customers.OrderBy(cust => cust.ID).Skip(20).Take(20) aaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Context.Customers.OrderBy(cust => cust.ID).Skip(40).Take(20) aaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Context.Customers.OrderBy(cust => cust.ID).Skip(60).Take(20) aaaaaaaaaaaaaaaaaaaaaaaaaaaaa
و ...
خیلی از دیتا سورس ها که IPagedCollectionView رو پیاده سازی کردند، می تونند از این آیتم استفاده کنند
شما هم می تونید دستی این کار رو انجام بدید
علی فتحی
یک شنبه 09 خرداد 1395, 00:36 صبح
try {
totalRecordCount = db.Txarids.Count();
totalPageCount = (int)System.Math.Ceiling((double)totalRecordCount / countPerPage);
int previousPageNumber = pageNumber-1;
var Qr = from i in db.Txarids.OrderBy(c => c.id)
.Skip(previousPageNumber * countPerPage)
.Take(countPerPage)
select i;
dataGridViewX1.DataSource = Qr;
labelItem2.Text = pageNumber.ToString();
labelItem5.Text = totalPageCount.ToString();
}
catch
{
}
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.