O algoritmo de paginação é um problema com o qual os desenvolvedores da Web estão muito preocupados. Quase todos os aplicativos relacionados a bancos de dados envolvem o algoritmo de paginação. Muitas pessoas escreveram documentos nesta área e parece que não há nada para discutir, mas na verdade, vamos mudar. Ao alterar a representação dos dados, um algoritmo de paginação melhor pode ser usado. Vamos ver se podemos fazer melhor agora.
Vamos primeiro falar sobre alguns métodos existentes.
Uma delas é a paginação através do DataGrid. Este método é o mais simples, mas não é eficiente e requer a leitura de todos os dados antes dos dados necessários.
A segunda é preencher o método de paginação do DataSet especificando o registro inicial e o número do registro DbDataAdapter.Fill. Este método também é simples, mas também não é eficiente e requer a leitura de todos os dados antes dos dados necessários.
A terceira é selecionar os registros necessários do meio da tabela por meio de seleção múltipla superior e classificação múltipla, para evitar que os dados das páginas adjacentes se repitam, é necessário usar not in, o que causará os dados finais de; a tabela com uma grande quantidade de dados a ser selecionada O desempenho do banco de dados será bastante reduzido.
Suponha que alteremos a forma de apresentação da tabela, tomando como exemplo a apresentação em grade com barras de rolagem na aplicação C/S tradicional. Na verdade, este método é o método de apresentação mais adequado para tabelas de banco de dados e o método de apresentação comumente usado em; Aplicativos da Web O método de conexão do número da página 1,2,3... ou o método da barra de navegação do número da página da página anterior e dos botões da próxima página são o último recurso, porque a tecnologia simples não pode ser usada para implementar barras de rolagem em aplicativos da Web. Grade.
Todas as tabelas no banco de dados possuem chaves primárias para distinguir diferentes registros nas tabelas; os dados na grade na interface do usuário também possuem chaves primárias logicamente, caso contrário, os dados serão ambíguos. É impossível saber a chave primária dos dados lidos; mesmo que alguns aplicativos a tenham configurado, eles conhecem a chave primária dos dados lidos, mas de fato não a aplicam à paginação; a chave primária dos dados lidos, você pode realizar a paginação com muita facilidade.
O algoritmo da página inicial é muito simples
selecione o tamanho da página superior * no nome da tabela, ordene por tecla primária.
Para tabelas com barras de rolagem, os dados rolam sequencialmente, página por página. Mesmo se você arrastar a barra de rolagem, poderá rolar página por página até a posição selecionada. algoritmo para novas páginas é
selecione o tamanho da página superior * no nome da tabela onde chave primária > chave primária registrada no final da página anterior ordene por chave primária
Se o cache for usado, todos os dados só precisarão ser baixados uma vez, e novos dados serão baixados apenas ao rolar para o fim.
Este algoritmo requer o conhecimento da chave primária dos dados na grade e a aplicação dos dados da chave primária à paginação para múltiplas chaves primárias e tabelas classificadas. O algoritmo é o mesmo, mas as instruções são mais complicadas. Você não só pode começar na página inicial, mas também pode começar na última página e rolar para frente.
Não há problema com o desempenho deste algoritmo. Não importa o tamanho da tabela, o registro em que a posição é selecionada é o mesmo. É mais adequado usar o método de seleção de paginação da página inicial, página anterior, página seguinte e. última página e é mais adequado para barras de rolagem; não é adequado para paginação de números de páginas especificados.
Para uma grade com barras de rolagem usando este algoritmo, consulte nossa demonstração www.BizStruct.cn .
Ao levantar questões, considere primeiro dois pontos, caso contrário você pode não perceber as vantagens de combinar este algoritmo com nosso sistema:
Primeiro: Qual é mais conveniente, o formulário de aplicação C/S tradicional ou o formulário de paginação na Web?
Primeiro, quão diferente é a tabela com barras de rolagem que implementamos da tabela em aplicativos C/S tradicionais.
Explicação da resposta:
Algumas respostas afirmaram que operações como "pular para a página xx" não podem ser implementadas.
Mas vamos pensar sobre isso, em um ambiente de aplicação C/S, se alguém usar esse método de salto de página, com certeza todos acharão estranho.
A grade com barras de rolagem que implementamos é quase tão rápida quanto a aplicação C/S anterior em um ambiente LAN, e também é muito rápida em um ambiente WAN.
A "operação de salto para a página XX" dos aplicativos da Web é, na verdade, o último recurso. Se a grade dos aplicativos C/S tradicionais pode ser implementada, por que deveríamos usá-la?