Paginare con i numeri di pagina un datagrid

di , in ASP.NET, ADO.NET, DataBinding,

Paginare un datagrid è abbastanza semplice, tuttavia di default vengono mostrati dei link alla pagina precedente ed a quella successiva.
Per modificare questo comportamento, mostrando il numero di pagine disponibili, è possibile utilizzare uno script come questo:

<%@ Page Language="VB" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<SCRIPT RUNAT="server" LANGUAGE="VB">

Sub Page_Load (sender As Object, e As EventArgs)
 BindData()
End sub

Sub BindData()
 Dim conn As SqlConnection
 Dim strConn as String = "server = localhost; UID = sa; pwd="
  conn = New SqlConnection(strConn)

  Dim query As SqlDataAdapter
  query = New SqlDataAdapter("SELECT * FROM script", conn)

  Dim querydataset As Dataset = new DataSet()
 query.fill(querydataset)

 ' paginazione con numero di pagina
 queryres.PagerStyle.Mode = PagerMode.NumericPages
 ' numero di pagine da mostrare, seguono poi i ...
 queryres.PagerStyle.PageButtonCount = 5

  queryres.DataSource = querydataset
 queryres.DataBind()

End Sub

Sub cambiapagina(sender as Object , e as DataGridPageChangedEventArgs)
    queryres.CurrentPageIndex = e.NewPageIndex
    lblRisultati.Text = "Pagina " & (e.NewPageIndex + 1)
    BindData()
End Sub

</SCRIPT>
<form runat="server" method="post">
<ASP:label id="lblRisultati" runat="server" />
<ASP:Datagrid id="queryres" runat="server"
AllowPaging="True"
onPageIndexChanged="cambiapagina" />
</form>

Con questa modifica, la barra in basso conterrà un menu di navigazione del tipo: 1 2 3 4 5 ...

In questo esempio viene utilizzato SQL Server come fonte di dati, con i namespace ottimizzati per l'accesso tramite DTS.
Con alcune modifiche (anzichè usare SQLConnection, basta utilizzare OLEDBConnection e via di seguito) è possibile adattare questo script anche ad altri database, come Access o MySQL.

Per maggiori informazioni sulla paginazione di un datagrid si veda:
https://www.aspitalia.com/articoli/aspplus/paginazione.asp

Commenti

Visualizza/aggiungi commenti

Paginare con i numeri di pagina un datagrid (#337) 810 84
| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi