Al escribir una clase de paginación, encontré un problema muy inteligente al pasar referencias a objetos de clase. Si explico lo que está sucediendo aquí, puede ser difícil para todos entenderlo claramente. Es mejor mirar el código, que usa una paginación. clase CPaging.
Copie el código de código de la siguiente manera:
Paginación de clase
Objeto público RS 'RecordSet
Etiqueta de puntero de marca pública
Tamaño privado 'Número de visualizaciones por página
Privado sTotal 'Número total de registros
Página privada 'Número de página actual
Private sCount 'Número total de páginas
Subclase privada_Inicializar
Tamaño = 20
sPágina = 1
cuenta = 1
Subtítulo final
Subclase privada_Terminar
Cerrarobj RS
Subtítulo final
'Mostrar número por página
Tamaño del alquiler de propiedad (valor)
sTamaño = Valor
Propiedad final
Propiedad Obtener tamaño
Tamaño=sTamaño
Propiedad final
'Número de página actual
Página de alquiler de propiedad (valor)
Si no es numérico (valor) entonces
sPágina = 1
Demás
sPágina = Valor
Terminar si
Propiedad final
Página de obtención de propiedad
Si (sPágina - 1) * sTamaño > sTotal Entonces
Si sTotal Mod sSize = 0 Entonces
Página=Total/sTamaño
Demás
Página = Total / sTamaño +1
Terminar si
De lo contrario, si página <1, entonces
Página=1
Demás
Página=sPágina
Terminar si
Propiedad final
'Número total de páginas
Propiedad Obtener Conteo
Si sTotal Mod sSize = 0 Entonces
Recuento = sTotal / sTamaño
Demás
Conteo = sTotal / sTamaño + 1
Terminar si
Propiedad final
'Número total de registros
PropiedadGetTotal()
Total = sTotal
Propiedad final
Función pública abierta (Byval SQLString)
Pruebe DB.Openquery(RS,SQLString)
sTotal = RS.RecordCount
Función final
Fin de clase
La siguiente es la página de llamadas.
Copie el código de código de la siguiente manera:
Productos tenues
Establecer productos = Nueva CPaging
Con productos
.Size = 15 'Número de visualizaciones por página
.Página = NúmeroPágina 'Página actual
Terminar con
Pruebe Products.Open (ListSQL)
Si Productos.RS.Bof y Productos.RS.Eof entonces
Response.Write(<TR><TD colspan=8>No encontrar registros</TD></TR>)
Demás
Yo tenue
yo = 0
Productos.RS.Move (Productos.Página - 1) * Productos.Tamaño
Hacer mientras no Productos.RS.Eof
Response.Write(<TR onmouseup=MouseUp(esto); onmousedown=MouseDown(este); onmouseover=MouseOver(esto); onclick=Click(esto); onmouseout=MouseOut(esto);>&vbCrLf)
Response.Write(<TD align=middle nowrap> & Products.RS(ProductsClassName) & </TD>&vbCrLf)
Response.Write(<TD align=left nowrap> & Products.RS(ProductsName) & </TD>&vbCrLf)
Respuesta.Escribir(</TR>&vbCrLf)
yo=yo+1
Si i >= Products.Size entonces salga de Do
Productos.RS.MoveNext
Bucle
Terminar si
Cuando vi la línea 8, me pareció vislumbrar la sombra de .net: ¿espacio de nombres?