Salve sto cercando di far funzionare la paginazione di un repeater aggiungendola usando la classe che utilizza il controllo Datagrid cioè System.Web.Ui.Control.PagedDataSource.
Passo i valori ad una query da un menù Javascript mi appaiono i primi 5 prodotti (ho impostato cosi la paginazione !!) poi quando clicco il bottone nex vedo i numeri che vanno avanti barra dell'indirizzo di Explorer tipo Webform6.aspx?Page=2 clicco ....Webform6.aspx?Page=3 e via dicendo ma i dati non si riassociano. Non capisco come posso fare ho provato anche a inserire nella procedura che lancio al click del tasto NEXT gli stessi valori del menu javascript che uso per estrarre i prodotti dal database... Incollo il codice ...
Forse sono le query?? Premetto che senza paginazione funzionano a meraviglia.. Ho letto diversi articoli in merito a questo sistema per paginare ma nessuno poneva il caso che la query prendesse come variabili dei valori estratti con Querystring...nel mio caso sono una MARCA una FAMIGLIA e una SOTTOFAMIGLIA...
Dim pagedData As New PagedDataSource
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' If Not (IsPostBack) Then
doPaging()
' End If
End Sub
Function getTheData(ByVal strsortfield As String) As DataTable
Dim filterValue1 As String = Request.QueryString("marca")
Dim filterValue3 As String = Request.QueryString("famiglia")
Dim filterValue2 As String = Request.QueryString("sottofamiglia")
Dim DS As New DataSet
Dim strConnect As New SqlConnection(System.Configuration.ConfigurationSettings.AppSettings("SqlConnection1.ConnectionString"))
Dim objSQLAdapter As SqlDataAdapter
strConnect.Open()
If filterValue1 = "Tutti i prodotti" Then
objSQLAdapter = New SqlDataAdapter("SELECT A.Articolo, P.RagSoc, M.Reparto,T.Tipodispositivo,T.Notapubb,T.Descri,ESP.c_id, L.Prz - L.Prz * L.Sconto1 / 100 AS Prz, SUM(A.QtaIniz) + SUM(A.QtaEntrata) - SUM(A.QtaUscita) AS Disp1 " & _
"FROM ArtQta A " & _
"INNER JOIN Articoli T ON A.Articolo = T.Articolo " & _
"INNER JOIN Produtt P ON T.Produttore = P.Produtt " & _
"INNER JOIN ArtListi L ON A.Articolo = L.Articolo " & _
"INNER JOIN CtPrd C ON T.CatProd = C.Categoria " & _
"INNER JOIN ArtMerce M ON T.Articolo = M.Articolo " & _
"INNER JOIN CtPrdSt S ON T.SotCatProd = S.SottoCtPRd " & _
"INNER JOIN ArtFisca F ON A.Articolo = F.Articolo " & _
"LEFT JOIN ESPRINET_CATALOGOCOMPLETO ESP ON ESP.codice_articolo = T.Articolo " & _
"WHERE (L.Listino = '" & Session("scontoCliente") & "') AND (T.Disattivo = '0') AND (A.Esercizio = '2006') AND (F.Esercizio = '2006') " & _
"AND (S.Descri ='" & filterValue3 & "' AND C.Descri = '" & filterValue2 & "') " & _
"GROUP BY A.Articolo, T.Descri, P.RagSoc, L.Prz, M.Reparto,T.Notapubb,ESP.c_id,T.Tipodispositivo, L.Sconto1 " & _
"ORDER by '" & strsortfield & "'", strConnect)
ElseIf filterValue1 <> "Tutti i prodotti" Then
objSQLAdapter = New SqlDataAdapter("SELECT A.Articolo, P.RagSoc, M.Reparto,T.Tipodispositivo,T.Notapubb,ESP.c_id,T.Descri,L.Prz As Prpub,L.Sconto1 As Scdeal,L.Prz - L.Prz * L.Sconto1 / 100 AS Prz, SUM(A.QtaIniz) + SUM(A.QtaEntrata) - SUM(A.QtaUscita) AS Disp1 " & _
"FROM ArtQta A " & _
"INNER JOIN Articoli T ON A.Articolo = T.Articolo " & _
"INNER JOIN Produtt P ON T.Produttore = P.Produtt " & _
"INNER JOIN ArtListi L ON A.Articolo = L.Articolo " & _
"INNER JOIN CtPrd C ON T.CatProd = C.Categoria " & _
"INNER JOIN ArtMerce M ON T.Articolo = M.Articolo " & _
"INNER JOIN CtPrdSt S ON T.SotCatProd = S.SottoCtPRd " & _
"INNER JOIN ArtFisca F ON A.Articolo = F.Articolo " & _
"LEFT JOIN ESPRINET_CATALOGOCOMPLETO ESP ON ESP.codice_articolo = T.Articolo " & _
"WHERE (L.Listino = '" & Session("scontoCliente") & "') AND (T.Disattivo = '0') AND (A.Esercizio = '2006') AND (F.Esercizio = '2006') " & _
"AND (P.RagSoc ='" & filterValue1 & "' AND C.Descri = '" & filterValue2 & "' AND S.Descri = '" & filterValue3 & "') " & _
"GROUP BY A.Articolo, T.Descri, P.RagSoc, L.Prz, M.Reparto,T.Tipodispositivo,ESP.c_id,T.Notapubb, L.Sconto1 " & _
"ORDER by '" & strsortfield & "'", strConnect)
End If
objSQLAdapter.Fill(DS, "customers")
Return DS.Tables("customers").Copy
End Function
Sub doPaging()
pagedData.DataSource = getTheData("descri").DefaultView
pagedData.AllowPaging = True
pagedData.PageSize = 5
Try
pagedData.CurrentPageIndex = Integer.Parse(Request.QueryString("Page")).ToString()
Catch ex As Exception
pagedData.CurrentPageIndex = 0
End Try
btnPrev.Visible = (Not pagedData.IsFirstPage)
btnNext.Visible = (Not pagedData.IsLastPage)
Repeater1.DataSource = pagedData
Repeater1.DataBind()
End Sub
Private Sub btnPrev_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrev.Click
Response.Redirect(Request.CurrentExecutionFilePath & "?Page=" & (pagedData.CurrentPageIndex - 1))
End Sub
Private Sub btnNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNext.Click
Response.Redirect(Request.CurrentExecutionFilePath & "?Page=" & (pagedData.CurrentPageIndex + 1))
End Sub