عند كتابة فئة ترحيل، واجهت مشكلة ذكية للغاية تتمثل في تمرير مرجع كائن الفئة. إذا شرحت ما يحدث هنا، فقد يكون من الصعب على الجميع فهمه بوضوح فئة CPaging.
انسخ رمز الكود كما يلي:
فئة CPaging
كائن مجموعة السجلات العامة لـ RS
علامة المؤشر العامة
حجم خاص ' عدد مرات العرض لكل صفحة
خاص sTotal 'إجمالي عدد السجلات
الصفحة الخاصة "رقم الصفحة الحالية".
حساب خاص "إجمالي رقم الصفحة".
فئة فرعية خاصة_تهيئة
الحجم = 20
الصفحة = 1
العدد = 1
نهاية الفرعية
فئة فرعية خاصة_إنهاء
قريب RS
نهاية الفرعية
'"عرض الرقم في كل صفحة."'
حجم العقار المستأجر (القيمة)
الحجم = القيمة
نهاية الملكية
الملكية احصل على الحجم
الحجم=الحجم
نهاية الملكية
"رقم الصفحة الحالية."
صفحة السماح للملكية (القيمة)
إذا لم يكن رقميًا (قيمة) إذن
الصفحة = 1
آخر
sPage = القيمة
نهاية إذا
نهاية الملكية
صفحة الحصول على الملكية
إذا (sPage - 1) * sSize > sTotal ثم
إذا كان sTotal Mod sSize = 0 إذن
الصفحة=الإجمالي/الحجم
آخر
الصفحة = الإجمالي / الحجم +1
نهاية إذا
ElseIf sPage <1 ثم
الصفحة=1
آخر
الصفحة=sPage
نهاية إذا
نهاية الملكية
"إجمالي رقم الصفحة."
الحصول على الملكية
إذا كان sTotal Mod sSize = 0 إذن
العدد = sTotal / sSize
آخر
العدد = الإجمالي / الحجم + 1
نهاية إذا
نهاية الملكية
"العدد الإجمالي للسجلات
بروبرتي جيت توتال ()
الإجمالي = sTotal
نهاية الملكية
الوظيفة العامة مفتوحة (Byval SQLString)
جرب DB.Openquery(RS,SQLString)
sTotal = RS.RecordCount
وظيفة النهاية
نهاية الفصل
وفيما يلي صفحة الدعوة
انسخ رمز الكود كما يلي:
منتجات خافتة
ضبط المنتجات = CPaging جديد
مع المنتجات
.الحجم = 15 'عدد مرات العرض لكل صفحة
.Page = PageNum 'الصفحة الحالية
نهاية مع
جرب Products.Open(ListSQL)
إذا كانت Products.RS.Bof وProducts.RS.Eof إذن
Response.Write(<TR><TD colspan=8>لا يوجد سجلات</TD></TR>)
آخر
خافت ط
ط = 0
Products.RS.Move (المنتجات.صفحة - 1) * حجم المنتجات
افعل بينما لا المنتجات.RS.Eof
Response.Write(<TR onmouseup=MouseUp(this); onmousedown=MouseDown(this); onmouseover=MouseOver(this); onclick=Click(this); onmouseout=MouseOut(this);>&vbCrLf)
Response.Write(<TD align=middle nowrap> & Products.RS(ProductsClassName) & </TD>&vbCrLf)
Response.Write(<TD align=left nowrap> & Products.RS(ProductsName) & </TD>&vbCrLf)
الاستجابة.كتابة(</TR>&vbCrLf)
ط=ط+1
إذا كنت >= Products.Size ثم قم بالخروج
المنتجات.RS.MoveNext
حلقة
نهاية إذا
عندما رأيت السطر 8، بدا لي أنني ألقيت نظرة خاطفة على ظل .net - مساحة الاسم؟