PDA

View Full Version : حرفه ای: نحوه پیاده سازی paging سمت دیتا بیس در ASP.Net



tazarvmmr
سه شنبه 09 آذر 1389, 11:08 صبح
سلام به همه
دوستان من در نوشتن استور پراسیجرش مشکل ندارم! فقط میخوام بدونم چطوری میشه تو ASP.Net با زبان #C اجراش کرد! تو اینترنت رو گشتم و همه توضیحات استفاده از ObjectDataSource رو گذاشته بودن کسی توضیح نداده بود که چه تنظیماتی باید در خود GridView انجام بشه و توضیح دقیقی هم در مورد تنظیمات ObjectDataSource پیدا نکردم!
اصل سوال اینه که فرض کنیم در استور پراسیچر (sp) ما 3 تا متغیر داریم که همشون هم ورودی هستند، به نامهای startRowNumber برای مشخص کردن شماره ردیف، PageRowNumber برای مشخص کردن تعداد ردیفها در page و SortExp برای تعیین فیلد مورد نظر برای sorting حالا من چه طوری باید به grid view اعلام کنم که تعداد ردیفهای هر صفحه رو از کجا بیاره! بطور پیش فرض از خاصیت PageSize خود gridView استفاده میشه! البته یک sp دیگه هم وجود داره که تعداد کل ردیفها رو بر میگردونه که اسم فانکشنی که اجراش میکنه تو خاصیت SelectCountMethod در ObjectDataSource وارد کردم.

خلاصه اینکه گیج شدم و نیاز به کمک دارم، لطفا راهنمایی کنین
ممنون از همه

Behrouz1985
سه شنبه 09 آذر 1389, 11:29 صبح
شما کافیه AllowPaging="True" قرار بدی و بعد توی رویداد PageIndexChanging اون گرید
قرار بدی:


grid.DataSource = Controller.GetAllWithPaging(pageIndex.ToString(), pageSize.ToString());
gird.DataBind();

که اون کنترلر ، پروسیجرتو با پارامترهای دریافتی اجرا می کنه

tazarvmmr
سه شنبه 09 آذر 1389, 13:58 عصر
شما کافیه AllowPaging="True" قرار بدی و بعد توی رویداد PageIndexChanging اون گرید
قرار بدی:


grid.DataSource = Controller.GetAllWithPaging(pageIndex.ToString(), pageSize.ToString());
gird.DataBind();

که اون کنترلر ، پروسیجرتو با پارامترهای دریافتی اجرا می کنه

ببخشید، من این کار رو کردم! ولی این Controller که ناشناخته هستش! این چیه؟ و این تابع GetAllWithPaging هم خودم باید بنویسم یا یک تابع تو VS هستش؟

Behrouz1985
سه شنبه 09 آذر 1389, 16:15 عصر
اون کنترلر برای اینه که من کدا رو از برنامه خودم کپی کردم و برنامه من سه لایه ست. در واقع اون کنترلر، پروسیجر شما رو اجرا می کنه.



public static DataTable GetAllWithPaging(string pageIndex, string pageSize)
{
string strSql = string.Format("exec SelectNews {0}, {1}", pageIndex, pageSize);
MyDBMS db = new MyDBMS();
try
{
return db.ExecuteSelectSql(strSql);
}
catch
{
throw new Exception("خطا در دریافت اطلاعات از جدول ...");
}
}

tazarvmmr
سه شنبه 09 آذر 1389, 16:37 عصر
فکر میکنم شما از ObjectDataSource استفاده نکردین، درسته؟

Behrouz1985
چهارشنبه 10 آذر 1389, 08:46 صبح
فکر میکنم شما از ObjectDataSource استفاده نکردین، درسته؟
اگه خوب دقت کنین می بینید که یک شی از کلاس MyDBMS تعریف شده. این کلاس مربوط به ارتباط با بانک اطلاعاتی و اجرا کردن دستورات مختلف sql هست