Se existe um controle de exibição de dados que você deve conhecer é o Gridview.
Além da facilidade de seu uso ele permite realizar nativamente a paginação dos registros exibidos em cada página com o mínimo de código.
Em matéria de estilo aí pegou o ponto forte dele. Totalmente personalizável em detalhes como se estiver ordenado em ordem crescente pela coluna A exiba os headers da tabela em Azul e se for por ordem decrescente exiba os headers com fundo pink.
O parâmetro AllowPaging="True" define que desejamos paginar a exibição de registros neste controle
O parâmetro PageSize=5 define quantos registros serão exibidos por página (no exemplo = 5 ).
O parâmetro OnPageIndexChanging="GridView1_PageIndexChanging" define a função que irá tratar a mudança de página.
O cógido da função é o seguinte :
Protected Sub GridView1_PageIndexChanging(sender As Object, e As GridViewPageEventArgs)
GridView1.PageIndex = e.NewPageIndex
BindGridView()
End Sub
A função BindGridView() é a função que carrega os dados no Gridview. Apesar do processo ser praticamente
automatico precisamos criar esta função porque ela é chamada tanto na carga :
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
BindGridView()
End If
End Sub
Como na mudança de página (código exibido acima).
A função que faz o a carga do gridview com os dados (binding - ligando) é a seguinte :
Protected Sub BindGridView()
Dim sql As String = ""
Dim ds As DataSet
DefStrConexao() 'definindo o string de conexão
sql = "select * from pessoas limit 50"
ds = BDDS(sql)
If System.Web.HttpContext.Current.Session("erro") = "" Then
GridView1.DataSource = ds
GridView1.DataBind()
Else
lblMsg.Text = System.Web.HttpContext.Current.Session("erro")
End If
End Sub
O parâmetro AutoGenerateColumns="true" define que o header das colunas deve ser trazido do nome dos campos obtidos na pesquisa. Muito prático.
O parâmetro GridLines="Both" informa que quero colocar as linhas de grade tanto vertical, horizontal ou nenhuma (none). Contudo o estilo da tabela que é como o GridView é enviado ao cliente é influenciado pelo padrão do bootstrap que dá uma maqueadinha nele. Não ficou mal mas a gente perde horas na estilização desse componente. Muitos detalhes personalizáveis.
Quanto aos estilos menciono seu uso:
1-HeaderStyle : Estilo do cabeçalho
2-FooterStyle : Estilo do rodapé.
3-PagerStyle : É o estilo da área onde os dados são exibidos.
4-RowStyle : É o estilo das linhas da tabela onde os dados são exibidos.
5-SelectedRowStyle : É o estilo da linha selecionada (quando clica com mouse).
6-SortedAscendingCellStyle : É o estilo quando a tabela esta ordenada em ordem ascendente.
7-SortedDescendingCellStyle : É o estilo da coluna de dados quando a tabela está ordenada em ordem decrescente.
8-SortedAscendingHeaderStyle : É o estilo do cabeçalho quando a tabela esta ordenada em ordem ascendente.
9-SortedDescendingHeaderStyle : É o estilo do cabeçalho quando a tabela está ordenada emordem decrescente.
A ordem da exibição do registro é feita pela própria cláusula SQL (DESC, ASC) e a paginação funciona da mesma maneira mesmo com a mudança da ordem dos registros.