يستخدم هذا الترحيل المؤشر 0، وهو Rs.Open Sql,Conn,0,1. لكن الأمر لا يبدو أسرع كثيرًا، 10
يبلغ وقت الترحيل لـ 10000 قطعة من البيانات أكثر من 300 مللي ثانية.
<%
صفحة الفصل
صفحة خاصة
صفحة خاصة N
عنوان URL الخاص
خاص TempStr
معلومات الخطأ الخاصة
PrivateIsErr
السجل الإجمالي الخاص
صفحة إجمالية خاصة
الصفحات العامة
الخاصة TempA(11)
درجة الحرارة الخاصة(8)
'------------------------------------------------ - ---------
فئة فرعية خاصة_Initialize()
CurrPage=1'// يتم عرض الصفحة الحالية كصفحة أولى بشكل افتراضي
PageN=10'// بشكل افتراضي، يتم عرض 10 أجزاء من البيانات في كل صفحة
UrlStr = "#"
TempStr = ""
إرينفو = "إيرينفو:"
خطأ
نهاية الفرعية
فئة فرعية خاصة_Terminate()
إذا كان IsObject(PageRs) ثم
PageRs.إغلاق
تعيين PageRs = لا شيء
نهاية إذا
محو درجة الحرارة
محو درجة الحرارةB
نهاية الفرعية
'------------------------------------------------ - ---------
'//احصل على رقم الصفحة الحالية
الملكية العامة تسمح للصفحة الحالية (Val)
CurrPage=فال
نهاية الملكية
الملكية العامة احصل على CurrentPage()
CurrentPage=CurrPage
نهاية الملكية
'// احصل على عدد العناصر المعروضة في كل صفحة
الملكية العامة اسمحوا PageNum(Val)
PageN=فال
نهاية الملكية
الملكية العامة احصل على PageNum()
PageNum=PageN
نهاية الملكية
'//احصل على عنوان URL
عنوان URL للملكية العامة (Val)
UrlStr=Val
نهاية الملكية
الملكية العامة احصل على عنوان URL()
Url=UrlStr
نهاية الملكية
'//احصل على القالب
الملكية العامة دع درجة الحرارة (فال)
TempStr=Val
نهاية الملكية
الملكية العامة احصل على درجة الحرارة ()
درجة الحرارة = TempStr
نهاية الملكية
'------------------------------------------------ - ----------
Public Sub Exec(Sql,ConnObj)
على خطأ استئناف التالي
تعيين PageRs=Server.CreateObject("ADODB.RecordSet")
PageRs.CursorLocation = 3 'يمكن أن يؤدي استخدام المؤشرات من جانب العميل إلى تحسين الكفاءة
PageRs.PageSize = PageN 'تحديد عدد السجلات المعروضة على كل صفحة من مجموعة سجلات الترحيل
PageRs.Open Sql,ConnObj,0,1
إذا Err.Number<>0 ثم
خطأ.واضح
PageRs.إغلاق
تعيين PageRs = لا شيء
ErrInfo=ErrInfo&"حدث خطأ أثناء إنشاء مجموعة السجلات أو فتحها..."
IsErr=صحيح
الاستجابة.اكتب معلومات الخطأ
الاستجابة.النهاية
نهاية إذا
TotalRecord=PageRs.RecordCount'//ماذا لو كان 0؟
إذا كان TotalRecord>=1 إذن
'------------------------------------------------ - --------------------------يبدأ
'// احسب العدد الإجمالي للصفحات، ملاحظة، لماذا لا تستخدم PageRs.PageCount؟
'إذا كان TotalRecord Mod PageN=0 إذن
'TotalPage=PageRs.RecordCountPageN
'آخر
'TotalPage=PageRs.RecordCountPageN
'TotalPage=Abs(Int(TotalPage))
'انتهى إذا
TotalPage=PageRs.PageCount
'// معالجة رقم الصفحة المستلمة حاليًا، الافتراضي هو 1، لذا إذا لم يكن نوعًا رقميًا، فسيكون 1
إذا كان IsNumeric(CurrPage) إذن
CurrPage=CLNg(CurrPage)
إذا كان CurrPage <1، فإن CurrPage = 1
إذا CurrPage>TotalPage ثم CurrPage=TotalPage
آخر
'//Dim M:M="":IsNumeric(M)=True
صفحة العملة=1
نهاية إذا
'------------------------------------------------ - -------------------------ينهي
آخر
إجمالي الصفحة = 0
صفحة العملة=1
نهاية إذا
'//
PageRs.AbsolutePage = CurrPage 'absolutepage: اضبط المؤشر على بداية الصفحة
PageRs.PageSize=PageN
نهاية الفرعية
التهيئة الفرعية الخاصة ()
'درجة الحرارة الخاصة(10)
TempA(1)="{N1}" '//الصفحة الرئيسية
TempA(2)="{N2}"'//الصفحة السابقة
TempA(3)="{N3}"'//الصفحة التالية
TempA(4)="{N4}"'//الصفحة الأخيرة
TempA(5)="{N5}"'// رقم الصفحة الحالية
TempA(6)="{N6}"'//إجمالي عدد الصفحات
TempA(7)="{N7}"'// عدد العناصر في كل صفحة
TempA(8)="{N8}"'//إجمالي عدد المقالات
TempA(9)="{L}"'// تسمية بداية الحلقة
TempA(10)="{N}"'// تسمية واحدة في الحلقة: رقم الصفحة
TempA(11)="{L/}""// تسمية نهاية الحلقة
'درجة الحرارة الخاصة ب(8)
درجة الحرارةB (1) = "الصفحة الرئيسية"
TempB(2)="الصفحة السابقة"
TempB (3) = "الصفحة التالية"
TempB (4) = "الصفحة الأخيرة"
TempB(5)=CurrPage'//رقم الصفحة الحالية
TempB(6)=TotalPage'//إجمالي عدد الصفحات
TempB(7)=PageN'// عدد العناصر في كل صفحة
TempB(8)=TotalRecord'//إجمالي عدد المقالات
نهاية الفرعية
العرض الفرعي العام (النمط)
إذا كان IsErr=صحيح إذن
الاستجابة.اكتب معلومات الخطأ
الخروج من الباطن
إنهاء إذا
استدعاء Init ()
حدد نمط الحالة
الحالة 1
الاستجابة.كتابة StyleA()
الحالة 2
الاستجابة.كتابة StyleB()
الحالة 3
الاستجابة.كتابة StyleC()
الحالة 4
الاستجابة.كتابة StyleD()
حالة أخرى
ErrInfo=ErrInfo&"النمط الحالي غير موجود..."
الاستجابة.اكتب معلومات الخطأ
إنهاء التحديد
نهاية الفرعية
الوظيفة العامة ShowStyle(النمط)
إذا كان IsErr=صحيح إذن
ShowStyle=ErrInfo
وظيفة الخروج
إنهاء إذا
استدعاء Init ()
حدد نمط الحالة
الحالة 1
ShowStyle= StyleA()
الحالة 2
ShowStyle= StyleB()
حالة أخرى
ErrInfo=ErrInfo&"النمط الحالي غير موجود..."
ShowStyle=ErrInfo
إنهاء التحديد
وظيفة نهاية
الوظيفة الخاصة StyleA()
'الصفحة الرئيسية الصفحة السابقة الصفحة التالية الصفحة الأخيرة هذه الصفحة هي الصفحة 1/20، بإجمالي 20 صفحة، 10 مقالات في كل صفحة، وإجمالي 200 مقال.
'// مثال ترقيم الصفحات: [الصفحة الرئيسية] [الصفحة السابقة] [الصفحة التالية] [الصفحة الأخيرة] [الصفحة: 4/5 صفحات] [إجمالي 86 مقالة/20 مقالة/صفحة] انتقل إلى: _ الصفحة
'//العلامة: {N1} {N2} {N3} {N4} ||. الإجمالي: {N8} سجل {N6} صفحة حاليًا هو {N5} صفحة {N7} سجل لكل صفحة
إذا كان فارغًا (TempStr) إذن
ErrInfo=ErrInfo&"القالب فارغ..."
StyleB=ErrInfo
وظيفة الخروج
نهاية إذا
ديم
إذا TotalPage> 1 ثم
إذا CurrPage> 1 ثم
M="<a href='"&UrlStr&"Page=1'>"&"الصفحة الرئيسية"&"</a>"
TempStr=Replace(TempStr،"{N1}"،M)
M="<a href='"&UrlStr&"Page="&CurrPage-1&"'>"&"الصفحة السابقة"&"</a>"
TempStr=Replace(TempStr،"{N2}"،M)
إذا CurrPage<TotalPage ثم
M="<a href='"&UrlStr&"Page="&CurrPage+1&"'>"&"الصفحة التالية"&"</a>"
TempStr=Replace(TempStr،"{N3}"،M)
M="<a href='"&UrlStr&"Page="&TotalPage&"'>"&"الصفحة الأخيرة"&"</a>"
TempStr=Replace(TempStr،"{N4}"،M)
آخر
TempStr=Replace(TempStr,"{N3}"،"الصفحة التالية")
TempStr=Replace(TempStr,"{N4}"،"الصفحة الأخيرة")
نهاية إذا
آخر
TempStr=Replace(TempStr،"{N1}"، "الصفحة الرئيسية")
TempStr=Replace(TempStr,"{N2}"،"الصفحة السابقة")
M="<a href='"&UrlStr&"Page="&CurrPage+1&"'>"&"الصفحة التالية"&"</a>"
TempStr=Replace(TempStr،"{N3}"،M)
M="<a href='"&UrlStr&"Page="&TotalPage&"'>"&"الصفحة الأخيرة"&"</a>"
TempStr=Replace(TempStr،"{N4}"،M)
نهاية إذا
آخر
TempStr=Replace(TempStr،"{N1}"، "الصفحة الرئيسية")
TempStr=Replace(TempStr,"{N2}"،"الصفحة السابقة")
TempStr=Replace(TempStr,"{N3}"،"الصفحة التالية")
TempStr=Replace(TempStr,"{N4}"،"الصفحة الأخيرة")
نهاية إذا
T=TempStr
T=استبدال(T،"{N8}"،TotalRecord)
T=استبدال(T،"{N6}"،TotalPage)
T=استبدال(T،"{N5}"،CurrPage)
T=استبدال(T،"{N7}"،PageN)
TempStr=T
StyleA=TempStr
وظيفة نهاية
الوظيفة الخاصة StyleB()
'الصفحة الرئيسية|< 1 2 3 4 5 6 7 >| الصفحة الأخيرة
'//العلامة:{N1} {N2} {L}{N}{L/}{N3}{N4}
إذا كان فارغًا (TempStr) إذن
ErrInfo=ErrInfo&"القالب فارغ..."
StyleB=ErrInfo
وظيفة الخروج
نهاية إذا
Dim ForceNum,BackNum'// الرقم المعروض أمام الصفحة الحالية وخلفها
رقم القوة = 5
رقم الرجوع = 4
ديم
'//الصفحة الأولى
M="<a href='"&UrlStr&"Page=1'>"&TempB(1)&"</a>"
TempStr=Replace(TempStr،"{N1}"،M)
'//الصفحة الأخيرة
M="<a href='"&UrlStr&"Page="&TempB(6)&"'>"&TempB(4)&"</a>"
TempStr=Replace(TempStr،"{N4}"،M)
'//الصفحة السابقة
م = "|<"
إذا CurrPage-1>=1 إذن
M="<a href='"&UrlStr&"Page="&CurrPage-1&"'>"&"|<"&"</a>"
نهاية إذا
TempStr=Replace(TempStr،"{N2}"،M)
'//الصفحة التالية
م =>|"
إذا CurrPage+1<=TotalPage ثم
M="<a href='"&UrlStr&"Page="&CurrPage+1&"'>"&">|"&"</a>"
نهاية إذا
TempStr=Replace(TempStr،"{N3}"،M)
'// قم بإزالة تسمية الحلقة
خافت N1، N2، N3، N4، N5، N6
إذا كان InStr(TempStr،"{L}")>0 إذن
N1=InStr(TempStr،"{L}")
نهاية إذا
إذا كان InStr(TempStr,"{L/}")>0 إذن
N2=InStr(TempStr،"{L/}")
نهاية إذا
إذا كان N2<=N1 إذن
ErrInfo=ErrInfo&"خطأ في تسمية الحلقة..."
StyleB=ErrInfo
وظيفة الخروج
نهاية إذا
N3=Mid(TempStr,N1,N2-N1+4)'// قوالب التخزين بما في ذلك علامات الحلقة {L}{L/}
N4=Replace(N3,"{L}"،")'// قوالب التخزين التي لا تتضمن علامات الحلقة {L}{L/}
N4=استبدال(N4،"{L/}"،"")
'//قائمة أرقام الصفحة
تعتيم رقم الصفحة الأولى، رقم الصفحة الأخيرة
إذا CurrPage-ForceNum<=1 ثم
رقم الصفحة الأولى = 1
قائمة الصفحات = ""
آخر
FirstPageNum=CurrPage-ForceNum
قائمة الصفحات = "... ..."
نهاية إذا
إذا CurrPage+BackNum>=TotalPage ثم
LastPageNum=TotalPage
قائمة الصفحات_2 = ""
آخر
LastPageNum=CurrPage+BackNum
PageList_2 = "... ..."
نهاية إذا
خافت أنا
بالنسبة إلى I=FirstPageNum إلى LastPageNum
إذا كنت = CurrPage ثم
N5=استبدال(N4,"{N}"،"<b>"&I&"</b>")
ن6=ن6&ن5
آخر
M="<a href='"&UrlStr&"Page="&I&"'>"&I&"</a>"
N5=استبدال(N4،"{N}"،M)
ن6=ن6&ن5
نهاية إذا
التالي
TempStr=استبدال(TempStr,N3,N6)
StyleB=TempStr
وظيفة نهاية
الوظيفة الخاصة StyleC()
'الصفحة الرئيسية|< |<< 1 2 3 4 5 6 7 >>| >|
'// تم تعديل هذا النمط بناءً على StyleB، مع إضافة علامتين: {N9} الصفحات العشرة السابقة {N10} الصفحات العشرة التالية
'//العلامة:{N1}{N2}{N9}{L}{N}{L/}{N10}{N3}{N4}
ديم ت
T=StyleB()
'//الصفحات العشر الأولى
م = "|<<"
إذا CurrPage-10>=1 إذن
M="<a href='"&UrlStr&"Page="&CurrPage-10&"'>"&"|<<"&"</a>"
نهاية إذا
T=استبدال(T،"{N9}"،M)
م =>>|"
إذا CurrPage+10<=TotalPage ثم
M="<a href='"&UrlStr&"Page="&CurrPage+10&"'>"&">>|"&"</a>"
نهاية إذا
T=استبدال(T،"{N10}"،M)
ستايلC=T
وظيفة نهاية
الوظيفة الخاصة StyleD()
'// تم تعديل هذا النمط بناءً على StyleC
'// إجمالي {N8} سجلات {N6} صفحة حاليًا هو {N5} صفحة {N7} سجل لكل صفحة
'//الصفحة الرئيسية|< |<< 1 2 3 4 5 6 7 >>|. الصفحة الأخيرة
'//العلامة:{N1}{N2}{N9}{L}{N}{L/}{N10}{N3}{N4}
ديم ت
T=StyleC()
T=استبدال(T،"{N8}"،TotalRecord)
T=استبدال(T،"{N6}"،TotalPage)
T=استبدال(T،"{N5}"،CurrPage)
T=استبدال(T،"{N7}"،PageN)
ستايلد=ت
نهاية الوظيفة
فئة النهاية
%>