При написании класса подкачки я столкнулся с очень хитрой проблемой передачи ссылок на объекты класса. Если я объясню, что здесь происходит, всем может быть сложно понять это. Лучше посмотреть на код, который использует подкачку. класс CPaging.
Скопируйте код кода следующим образом:
Класс CPaging
Объект Public RS ' RecordSet
Метка указателя Public Mark
Private sSize 'Количество отображений на странице
Private sTotal 'Общее количество записей
Private sPage 'Номер текущей страницы
Private sCount 'Общее количество страниц
Частный подкласс_инициализировать
сразмер = 20
сСтраница = 1
сCount = 1
Конец субтитра
Частный подкласс_Terminate
Closeobj RS
Конец субтитра
'Отображать количество на странице
Свойство Let Size(значение)
sSize = Значение
Конечная собственность
Свойство Получить размер
Размер=sРазмер
Конечная собственность
'Номер текущей страницы
Свойство Let Page (значение)
Если не IsNumeric(значение), то
сСтраница = 1
Еще
sСтраница = Значение
Конец, если
Конечная собственность
Страница получения недвижимости
Если (sPage - 1) * sSize > sTotal Тогда
Если sTotal Mod sSize = 0 Тогда
Страница=Всего/sSize
Еще
Страница = Всего / sSize +1
Конец, если
ИначеЕсли sPage < 1 Тогда
Страница=1
Еще
Страница=sСтраница
Конец, если
Конечная собственность
'Общее количество страниц
Свойство Получить счетчик
Если sTotal Mod sSize = 0 Тогда
Количество = sTotal / sSize
Еще
Количество = sTotal / sSize + 1
Конец, если
Конечная собственность
'Общее количество записей
PropertyGetTotal()
Итого = sВсего
Конечная собственность
Открытая функция Open (Byval SQLString)
Попробуйте DB.Openquery(RS,SQLString)
sTotal = RS.RecordCount
Конечная функция
Конечный класс
Ниже приводится вызывающая страница
Скопируйте код кода следующим образом:
Тусклые продукты
Установить продукты = новый CPaging
С продуктами
.Size = 15 'Количество отображений на странице
.Page = PageNum 'Текущая страница
Конец с
Попробуйте Products.Open(ListSQL)
Если Products.RS.Bof и Products.RS.Eof, то
Response.Write(<TR><TD colspan=8>Не найти записей</TD></TR>)
Еще
Дим я
я = 0
Products.RS.Move (Products.Page - 1) * Products.Size
Делайте, пока нет Products.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)
Response.Write(</TR>&vbCrLf)
я=я+1
Если я >= Products.Size, то выйдите.
Продукты.RS.MoveNext
Петля
Конец, если
Когда я увидел строку 8, мне показалось, что я мельком увидел тень .net — пространства имен?