Paginazione DataView

martedì 24 luglio 2007 - 10.24

neuromante65 Profilo | Newbie

Ho una pagina ASP.NET 2 nella quale sono presenti un controllo GridView, alcuni combo ed un tasto; cliccando sul tasto vado a leggere le selezioni dei combo , creo una query Sql "on the fly" e metto tutto in un dataset dal quale mediante un Dataview estraggo solo le righe che mi interessano con un filtro e faccio il binding alla mia GridVIew.
Nella gridView ho impostato il paging e per conservare la persistenza del dataSource tra un post e l'altro della pagina homemorizzato il dataview stesso in una variabile di sessione (ho preso lo spunto da MSDN)
In questo modo il paging funziona correttamente e mi muovo senza problemi tra una pagina e l'altra; mi chiedo però se non c'è un sistema + performante per ottenere lo stesso risultato perchè quando il DB sarà popolato e le righe diventeranno tante portarmenle appresso con una variabile di sessione non mi sembra il max.

Allego il code-behind della pagina in oggetto

Dim conn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("App_Data/GestionePalmari.mdb")

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim strSQL As String
Dim TotRighe As String = "Righe Totali: "
strSQL = "SELECT * FROM MiaTabella"
Using connection As New OleDbConnection(conn)
connection.Open()
Dim myDataSet As New DataSet
Dim cmdSelezione As New OleDbCommand(strSQL, connection)
Dim myAdapter As New OleDbDataAdapter(cmdSelezione)
myAdapter.Fill(myDataSet, "TabOperazioni")
Dim dv As DataView
dv = New DataView(myDataSet.Tables("MiaTabella"), "(MIOCAMPO = MAX(MIOCAMPO))", "CAMPO", DataViewRowState.CurrentRows)
Session("Source") = dv
TotRighe += dv.Count.ToString
GridView1.DataSource = dv
GridView1.DataBind()
lblMessage.Text = TotRighe
End Using



Protected Sub gridView_PageIndexChanging(ByVal sender As Object, ByVal e As GridViewPageEventArgs)
GridView1.DataSource = Session("Source")
GridView1.PageIndex = e.NewPageIndex
GridView1.DataBind()
End Sub


E l'HTML:

<asp:GridView ID="GridView1" OnPageIndexChanging="gridView_PageIndexChanging" runat="server" AllowPaging="True" BorderColor="#00C0C0"
CellSpacing="1" Font-Names="Tahoma" Font-Size="Small" Width="357px">
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5