Ao escrever uma classe de paginação, encontrei um problema muito inteligente de passagem de referência de objeto de classe. Se eu explicar o que está acontecendo aqui, pode ser difícil para todos entenderem claramente. classe CPaging.
Copie o código do código da seguinte forma:
CPaging de classe
Objeto RecordSet do RS público
Marca pública ' rótulo de ponteiro
Private sSize ' Número de exibições por página
Private sTotal 'Número total de registros
Private sPage 'Número da página atual
Private sCount 'Número total de páginas
Subclasse Privada_Initialize
tamanho = 20
sPágina = 1
sCont = 1
Finalizar sub
Subclasse Privada_Terminate
Closeobj RS
Finalizar sub
'Mostra o número por página
Tamanho do aluguel da propriedade (valor)
sTamanho = Valor
Propriedade final
Propriedade obter tamanho
Tamanho=sTamanho
Propriedade final
'Número da página atual
Página de permissão de propriedade (valor)
Se não for numérico (valor), então
sPágina = 1
Outro
sPágina = Valor
Terminar se
Propriedade final
Página de obtenção de propriedade
If (sPage - 1) * sSize > sTotal Então
Se sTotal Mod sSize = 0 Então
Página=Total/sTamanho
Outro
Página = Total / sTamanho +1
Terminar se
ElseIf sPage < 1 Then
Página=1
Outro
Página=sPágina
Terminar se
Propriedade final
'Número total de páginas
Propriedade obter contagem
Se sTotal Mod sSize = 0 Então
Contagem = sTotal / sSize
Outro
Contagem = sTotal / sSize + 1
Terminar se
Propriedade final
'Número total de registros
PropriedadeGetTotal()
Total = total
Propriedade final
Função pública aberta (Byval SQLString)
Experimente DB.Openquery(RS,SQLString)
sTotal = RS.RecordCount
Função final
Fim da aula
A seguir está a página de chamada
Copie o código do código da seguinte forma:
Produtos escuros
Definir produtos = novo CPaging
Com produtos
.Size = 15 'Número de exibições por página
.Page = PageNum 'Página atual
Terminar com
Experimente Products.Open(ListSQL)
Se Products.RS.Bof e Products.RS.Eof então
Response.Write(<TR><TD colspan=8>Não encontrou registros</TD></TR>)
Outro
Escureça eu
eu = 0
Produtos.RS.Move (Produtos.Página - 1) * Produtos.Tamanho
Faça enquanto não for produtos.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)
Resposta.Write(</TR>&vbCrLf)
eu=eu+1
Se eu> = Products.Size, então saia, faça
Produtos.RS.MoveNext
Laço
Terminar se
Quando vi a linha 8, pareceu-me vislumbrar a sombra de .net - namespace?