Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di mexican
    Registrato dal
    Oct 2001
    residenza
    cava de tirreni
    Messaggi
    3,541

    Problema con paginazione e repeater

    Ciao a tutti ho un repeater al quale ho applicato la paginazione, il problema è che non riesco a far ordinare i dati in maniera descrescente, cioè io vorrei che nella prima pagina comparissero gli ultimi record e non dal primo verso l'ultimo.
    Come posso fare?

    Ecco il codice del paginazione:

    codice:
    Sub BindData()
            connetti()
            ' stringa di connessione
            'Dim strconn As String = "server=localhost;database=" & Server.MapPath(".") & ConfigurationSettings.AppSettings("nomeDB") & ";trusted_connection=true;"
            ' query
            Dim strsql As String = "SELECT * FROM GuestBook"
    
            ' SqlConnection e SqlDataAdapter
            'Dim conn As SqlConnection = New SqlConnection(strConn)
            'Dim query As SqlDataAdapter = New SqlDataAdapter(strsql, conn)
            Dim query As OleDbDataAdapter = New OleDbDataAdapter(strsql, conn)
            ' creo il dataset
            Dim querydataset As Dataset = New DataSet()
            Dim startRecord As Integer = (int32.Parse(CurrentPage) - 1) * int32.Parse(PageSize)
    
            ' databinding
            query.Fill(querydataset, startRecord, Int32.Parse(PageSize), "ext_content")
            guest.DataSource = querydataset
            guest.DataBind()
    
            ' conta i record totali
            Dim strSQLCount As String = strSQL
    
            ' ricavo la query count
            strSQLCount = "SELECT COUNT(*) as Totale " & strSQLCount.Substring(strSQLCount.IndexOf(" FROM "))
    
            'conn.open()
            Dim myCommand As OleDbCommand = New OleDbCommand(strSQLCount, conn)
            Dim reader As OleDbDataReader = myCommand.ExecuteReader()
    
            ' conto i risultati
            reader.read()
            TotalSize = reader("totale")
    
            reader.Close()
            conn.Close()
    
            ' mostra avviso in alto con il numero dei risultati
            'If TotalSize = 0 Then
            'results.Text = "Non ci sono risultati per questa ricerca"
            'Else
            TotalPages = Int32.Parse(TotalSize) \ Int32.Parse(PageSize) + 1
    
            ' fix per numero di pagine
            If Fix(TotalSize / PageSize) = TotalSize / PageSize Then TotalPages = TotalPages - 1
    
            If TotalSize = 1 Then
                results.Text += "Un Messaggio"
            Else
                results.Text += TotalSize & " messaggi"
            End If
    
            ' fix per record finale
            Dim EndRecords As Integer
            EndRecords = startRecord + Int32.Parse(PageSize)
            If EndRecords > TotalSize Then EndRecords = TotalSize
    
            results.Text += " - Pagina " & CurrentPage & " di " & TotalPages
            'End If
            If TotalSize = 0 Then
                Paginazione.Visible = False
            End If
    
            ' costruisci la paginazione
            BuildPagers()
        End Sub
    
        Sub BuildPagers()
    
            ' ciclo
            Dim i As Integer
            Dim lb As Label
            Dim paginelink As String
            If TotalPages > 1 Then
                lb = New Label()
                lb.Text = paginelink
                paginelink = "Ci sono " & TotalPages & " pagine "
                paginazione.controls.add(lb)
    
                For i = 1 To (TotalPages)
                    'lb = New Label()
    
                    'lb.id = "ThisPage" & i
                    If currentPage = i Then
                        paginelink = paginelink & "[" & i & "] "
                    Else
                        'lb.Text = "[" & i & "] "
                        paginelink = paginelink & "[" & i & "]"
                    End If
    
                    lb.Text = paginelink
                    Paginazione.Controls.Add(lb)
                Next
            End If
        End Sub

  2. #2
    Ma anche senza postare 1km di codice, mettere un semplice "ORDER BY [nomecolonna] DESC" nell'SQL ti sembra così brutto?

  3. #3
    Utente di HTML.it L'avatar di mexican
    Registrato dal
    Oct 2001
    residenza
    cava de tirreni
    Messaggi
    3,541
    Originariamente inviato da Sgro
    Ma anche senza postare 1km di codice, mettere un semplice "ORDER BY [nomecolonna] DESC" nell'SQL ti sembra così brutto?
    si visto che mi da errore se faccio così!!!

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da mexican
    si visto che mi da errore se faccio così!!!
    allora ci sono errori nel tuo codice, perchè di solito si fa come suggerisce Sgro, almeno, in Access e Oracle :master:
    Pietro

  5. #5
    Utente di HTML.it L'avatar di mexican
    Registrato dal
    Oct 2001
    residenza
    cava de tirreni
    Messaggi
    3,541
    Originariamente inviato da pietro09
    allora ci sono errori nel tuo codice, perchè di solito si fa come suggerisce Sgro, almeno, in Access e Oracle :master:
    si infatti chiedevo dove cmq ho risolto:

    strSQLCount = "SELECT COUNT(*) as Totale " & strSQLCount.Substring(strSQLCount.IndexOf(" FROM "))

    era qui il problema

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.