مقاله : چندصفحه ی شدن خود کار

Iauksh
اقا سلام
دوستان به نظر شما مثلا همین فروم دید که اگه یه تاپیکی تعدادپستهاش بیشتر از یه حد به شه خود به خود یه صفحه بهش اضافه می شه از چه تکنیکی استفاده شده
:oops:

Iauksh
شما با رکوردستها که حتما آشنایی دارید. یک رکوردست مجموعه ای از رکوردهای داخل حافظه است. خب شما میتونید این رکوردست رو صفحه بندی کنید. یعنی بگید مثلا هر 10 تا رکورد یک صفحه باشه. اگر با استفاده از ADO یک رکوردست رو باز کنید شیی Recordset در ADO دارای یک خصوصیت به اسم PageSize هست. شما با مقدار دهی این خصوصیت تعیین میکنید که چند رکورد در هر صفحه باشد. بعد برای حرکت بین این صفحه ها میتونید از ویژگی AbsolutePage استفاده کنید. ویژگی PageCount هم تعداد صفحات را مشخص میکند.
خب حالا اگر PageCount فرضا برابر 5 باشد، شما باید 5 صفحه برای نمایش سطرها ایجاد کنی. رفتن به صفحه بعدی یا قبلی رو هم از طریق مقداردهی AbsolutePage انجام میدی. (البته این به معنی این نیست که واقعا 5 صفحه ایجاد میکنی. میشه این جور تعریف کرد که هر بار که کاربر فرضا Next را کلیک کرد صفحه دوباره نمایش داده بشه و اطلاعات رو بر مبنای صفحه فعلی نمایش بده.)
البته من چون خودم تجربه عملی در این زمینه ندارم شاید توضیحاتم خیلی کامل نباشه. اساتیدی مثل آقای نصیری و ... بهتر میتونن کمک کنند.

Iauksh
خواهش می کنم! جواب شما یک راه حل است که جالب است.

عموما برای اینکار در ASP معمولی و PHP می آیند یک حلقه درست می کنند و سپس برای مثال تعداد آیتم های یک صفحه را 10 در نظر می گیرند. حالا با این حلقه تک تک رکوردها ی مربوط به یک تاپیک را می خوانند و نمایش می دهند. هر جایی که شمارشگر حلقه قابل تقسیم بر 10 بود یعنی یک صفحه تمام شده و صفحه ی بعد را شروع می کنند. گذاشتن لینک هم بالا یا پایین صفحه برای این مورد یعنی ارجاع به صفحه ی بعد هم در پایان هر 10 شمارش انجام می شود.

در ASP.NET این معضل توسط عمو بیلی حل شده است! شما به صورت ویژوال تعیین می کنید که یک گرید مانند اینجا چند row داشته باشد. در هنگام نمایش خود گرید بسیار توانمند ASP.NET کار Paging را خودکار انجام می دهد و برنامه نویس در گیر این جزئیات که باید یکبار برای همیشه حل شوند نمی شود.