> Manuales > Paginación ASP.NET C(#)/SQL-Server

Pasamos a especificar todos los métodos que vamos a utilizar, así como un esquema de funcionamiento y métodos del script.

Diagrama de Clases


Signatura de los metodos de todos los objetos

Este objeto abstrae la logica de la aplicacion en el servidor, recibe todos los eventos que envia el cliente (siguiente, anterior, borrar) y realiza las acciones apropiadas.

namespace ObjetoControl {
public class Pagina:System.Web.UI.Page {
   protected override void OnLoad(System.EventArgs e) {
}}


Este objeto abstrae todos los detalles de la interfaz de entrada (el html usado, de formulario, etc). Es usada por la clase control pagina, el metodo borrar de esta clase, nos da el identificador del item a borrar, que luego se lo pasaremos al objeto de base de datos

namespace InterfazEntrada {
public class Cliente {
   public int Borrar() { }
}}


Este objeto abstrae todos los detalles de la base de datos, es usado por la clase control pagina, al metodo borrar solo le pasamos el identificados del item a borrar y este lo borra de la base de datos.

namespace Entity {
public class DataBase {
   public void Cerrar() {}
      public void Borrar(int numeroMensaje) {
         CREATE PROCEDURE BorrarMensaje
         @numeroMensaje int
         AS
         DELETE FROM Mensajes WHERE numeroMensaje =@numeroMensaje
      }
}}


Es usado por la clase control pagina, el objeto de esta clase mantiene el numero de pagina que se esta mostrando, se incrementa cuando se envia con el evento siguiente y se decrementa con el evento anterior.

namespace Entity {
public class NumeroDePagina {
    public void Primera() {}
    public void Siguiente() {}
   public void Anterior() {}
   public int Ver {}
   public bool EsPrimera {}
   public bool EsUltima {}
}}


Esta clase se abstrae de los detalles de cómo visualizar los resultados. Si se realizan cambios en como se visualizaran la unica clase que tambien se tiene que modificar es la clase interfaz de entrada.

namespace InterfazSalida {
public class Cliente {
   public void DataView(System.Data.DataView dataView) {}
}}


Esta clase abstrae todos los detalles para brindar los siguientes n o los anteriores n registros. Usa las clase entidad base de datos para obtener los registrol y una clase estado que conserva el ultimo registro y el primer registro mostrado

namespace ObjetoControl {
public class GenerarPagina {
    public void Inicializar() {}
   public System.Data.DataView Siguientes() {}
    public System.Data.DataView Anteriores() {}
}}


Abstrae los detalles de la base de datos, es usado por el objeto control generar pagina.

namespace Entity {
public class DataBaseGeneraPagina {
   public void SeleccionarMenor() {
         "SELECT TOP 8 numeroMensaje, deNombreUsuario, asuntoMensaje, diaHoraMensaje
          "+
         "FROM Mensajes "+
          "WHERE "+
          "(numeroMensaje > @numeroMensaje) and "+
          "ORDER BY numeroMensaje ASC";
   }
   public void SeleccionarMayor() {
       "SELECT TOP 8 numeroMensaje, deNombreUsuario, asuntoMensaje, diaHoraMensaje
       "+
       "FROM Mensajes "+
       "WHERE "+
       "(numeroMensaje < @numeroMensaje) and "+
       "ORDER BY numeroMensaje DESC"; }
}}


Esta clase es usado por el objeto generar pagina. Mantiene el primer y ultimo registro mostrado en la pagina.

namespace Entity {
public class Estado {
   public int PrimerRenglon {}
    public int UltimoRenglon {}
}}


Propiedades del diseño

El diseño tiene bajo acoplamiento entre las clases definidas y alta coecion entre los elementes de las clases, esto permite realizar cambios en una clase sin tener que preocuparse de las demas, por ejemplo puedo cambiar la estructura de la base de datos y solo tengo que modificar el objeto entidad base de datos. Los unicos objetos que estan un poco mas acoplado son la interfaz de entrada con la de salida, por ejemplo si realizao cambios en la interfaz de salida, seguramente voy a tener que modificar la interfaz de entrada.

Codigo de las siguientes clase

Objeto control pagina: Maneja todos los eventos enviados por el cliente: inicializar, borrar, siguiente, anterior. Se encarga de la logica de la aplicación.
Objeto control generar Pagina: es llamado por el objeto control pagina. Se encarga de obtener de la base de dato los siguites o anteriores registros. Para esto tiene mantiene como estado cual es el primer y el ultimo registro que mostro en la llamada anterior.
Objeto interna Entrada: es llamado por el objeto control pagina, para obtener el id del item a borrar. Abstrae todos los detalles de cómo son mostrados los datos.

Cravero Marcos Gabriel

Desarrollador de aplicaciones para internet

Manual