(الأصلي vince6799)
يعد الترحيل في كود asp أمرًا مزعجًا بعض الشيء، وقد قمت شخصيًا بكتابة كود الترحيل إلى وظيفتين أثناء عملية كتابة التعليمات البرمجية، على الرغم من أن الوظيفة ليست مثالية، إلا أنها يجب أن تكون كافية للتطبيقات العامة.
<%
'تنقسم وظيفة الترحيل إلى وظيفتين
'CalcPage(totalrec,msg_per_page,currentpage,n,rowcount,PageRs) وظيفة حساب الترحيل
قائمة الترحيل "PageList(ListType,url,query,Separator,ListLink)"
وظيفة حساب
الترحيل
'totalrec العدد الإجمالي لمجموعات السجلات
'msg_per_page عدد السجلات المعروضة في كل صفحة يجب تعيين هذا المتغير مسبقًا عند استدعاء CalcPage.
'متغير الصفحة الحالية للصفحة الحالية، تحتاج إلى تعيين قيمة لهذا المتغير مقدمًا عند استدعاء CalcPage
العدد الإجمالي للصفحات
'rowcount يعين عدد سجلات البيانات لكل صفحة
"كائن مجموعة سجلات PageRs."
صفحة الحساب الفرعية (totalrec،msg_per_page،currentpage،n،rowcount،PageRs)
n=0 'اضبط رقم الصفحة على 0 في حالة عدم وجود سجل
إذا كانت الصفحة الحالية = "" فإن الصفحة الحالية = 0
'PageRs.EOF وPageRs.bof لا يوجد سجل
'لم يتم تسجيل PageRs.EOF أو لم يتم تسجيل PageRs.BOF
إذا لم يكن PageRs.EOF أو لا PageRs.BOF ثم
Totalrec=PageRs.recordcount
PageRs.pagesize=msg_per_page
إذا كان Totalrec mod msg_per_page = 0، فاحسب إجمالي عدد الصفحات، وعدد السجلات: إجمالي عدد سجلات البيانات
n = Totalrecmsg_per_page 'n:إجمالي عدد الصفحات
آخر
n = Totalrecmsg_per_page+1
نهاية إذا
إذا لم تكن رقمية (الصفحة الحالية) أو الصفحة الحالية = "" فالصفحة الحالية = 1
إذا كانت الصفحة الحالية <> "" إذن
الصفحة الحالية = سينت (الصفحة الحالية)
نهاية إذا
إذا كانت الصفحة الحالية <1 ثم
الصفحة الحالية = 1
نهاية إذا
إذا كانت الصفحة الحالية*msg_per_page > Totalrec وليس ((currentpage-1)*msg_per_page <talrec) إذن
الصفحة الحالية=1
نهاية إذا
PageRs.absolutepage = currentpage 'absolutepage: اضبط المؤشر على بداية الصفحة
rowcount = PageRs.pagesize 'pagesize: قم بتعيين عدد سجلات البيانات لكل صفحة
نهاية إذا
النهاية الفرعية
%>
<%
"وظيفة قائمة الترحيل."
عنوان الانتقال URL
"الاستعلام بعد؟"
'فاصل فاصل
'نوع الترحيل ListType
'النوع:0 "الصفحة الأولى | الصفحة السابقة | الصفحة التالية | الصفحة الأخيرة"
'النوع:1 "1 | 2 | 3 | 4 | ..........| الصفحة التالية"
'النوع: 2 "الصفحة الأولى | الصفحات العشر الأولى | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | الصفحات العشر التالية | الصفحة الأخيرة"
'النمط المستخدم بواسطة روابط ListLink
الفرعية PageList(ListType,url,query,Separator,ListLink)
إذا كان الفاصل = "" ثم الفاصل = "|"
إذا ListType = "" ثم ListType = "0"
حدد نوع قائمة الحالة
الحالة "0"
Response.write""&الصفحة الحالية&"/"&n&"الصفحة "
استجابة.اكتب "إجمالي"&إجمالي&"المعلومات "
إذا كانت الصفحة الحالية <= 1 ثم
Response.write"الصفحة الأولى "&فاصل&" "
استجابة.كتابة"الصفحة السابقة "&فاصل&" "
آخر
Response.write"<a href="""&url&"?page=1&"&query&""" class="""&ListLink&""">الصفحة الأولى</a> "&Separator&" "
Response.write"<a href="""&url&"?page="¤tpage-1&"&"&query&""" class="""&ListLink&""">الصفحة السابقة</a> "&Separator&"  ; "
نهاية إذا
إذا كانت الصفحة الحالية = n إذن
Response.write"الصفحة التالية "&فاصل&" "
استجابة.كتابة"الصفحة الأخيرة "
آخر
Response.write"<a href="""&url&"?page="¤tpage+1&"&"&query&""" class="""&ListLink&""">الصفحة التالية</a> "&Separator&"  ; "
Response.write"<a href="""&url&"?page="&n&"&"&query&""" class="""&ListLink&""">الصفحة الأخيرة</a> "
نهاية إذا
الحالة "1"
إذا كانت الصفحة الحالية < n إذن
Response.write"<a href="""&url&"?page="¤tpage+1&"&"&query&""" class="""&ListLink&""">الصفحة التالية</a> "
آخر
Response.write"الصفحة التالية "
نهاية إذا
لأني = 1 إلى ن
إذا كان cstr(i)=cstr(الصفحة الحالية) إذن
Response.write "<b>"&i&"</b>"&" "&Separator&" "
آخر
Response.write"<a href="""&url&"?page="&i&"&"&query&"" class=""&ListLink&"">"&i&"</a> "&Separator&" "
نهاية إذا
التالي
الحالة "2"
PageMerCout=10 'الحد الأقصى لعدد الصفحات التي يمكن قلبها في كل مرة
'احصل على الحد الأقصى لرقم الصفحة في السجل
إذا كان n mod PageMerCout=0 إذن
MaxPageFiled=nPageMerCout
آخر
MaxPageFiled=nPageMerCout+1
نهاية إذا
"تحديد مقطع رقم الصفحة حيث توجد الصفحة الحالية."
إذا كانت الصفحة الحالية وزارة الدفاع PageMerCout = 0 ثم
CurrPageFiled=currentpagePageMerCout
آخر
CurrPageFiled=currentpagePageMerCout+1
نهاية إذا
"احصل على الحد الأقصى لرقم الصفحة والحد الأدنى لرقم الصفحة لمقطع رقم الصفحة الحالي."
MaxPageNo=CurrPageFiled*PageMerCout
MinPageNo=(CurrPageFiled-1)*PageMerCout+1
'إخراج "الصفحة الأولى | الصفحات العشرة الأولى |"
إذا كانت الصفحة الحالية <= 1 إذن
Response.write"الصفحة الأولى "&فاصل&" "
آخر
Response.write"<a href="""&url&"?page=1&"&query&""" class="""&ListLink&""">الصفحة الأولى</a> "&Separator&" "
نهاية إذا
إذا CurrPageFiled<=1 ثم
Response.write"الصفحات العشر الأولى "&Separator&" "
آخر
Response.write"<a href="""&url&"?page="&MinPageNo-PageMerCout&"&"&query&""" class="""&ListLink&""">الصفحات العشر الأولى</a> "&Separator&"  ؛"
نهاية إذا
"إخراج مقطع رقم الصفحة الحالي."
من أجل i=MinPageNo إلى MaxPageNo
إذا كنت <= ن ثم
إذا كان cstr(i)=cstr(الصفحة الحالية) إذن
Response.write "<b>"&i&"</b>"&" "&Separator&" "
آخر
Response.write"<a href="""&url&"?page="&i&"&"&query&"">"&i&"</a> "&Separator&" "
نهاية إذا
نهاية إذا
التالي
"إخراج "الصفحات العشر التالية | الصفحة الأخيرة"
إذا CurrPageFiled>=MaxPageFiled ثم
Response.write"الصفحات العشر القادمة "&Separator&" "
آخر
Response.write"<a href="""&url&"?page="&MaxPageNo+1&"&"&query&"" class="""&ListLink&""">الصفحات العشر التالية</a> "&Separator&" "
نهاية إذا
إذا كانت الصفحة الحالية> = n إذن
استجابة.كتابة"الصفحة الأخيرة "
آخر
Response.write"<a href="""&url&"?page="&n&"&"&query&""" class="""&ListLink&""">الصفحة الأخيرة</a> "
نهاية إذا
حدد النهاية
النهاية الفرعية
%>