Prima di richiamare il databind della griglia ho "tradotto" il tuo codice in linguaggio vb.
Dim PageSize = griglia.PageSize
Dim NumRecord = 0
Dim Pagine = 0
Dim Resto = 0
Select Case griglia.DataSource.GetType().Name
Case "Dataset"
Dim ds As DataSet = New DataSet
ds = griglia.DataSource
NumRecord = ds.Tables(0).DefaultView.Count
Case "DataView"
Dim dv As DataView = New DataView
dv = griglia.DataSource()
NumRecord = dv.Count
Case "DataTable"
Dim dt As DataTable = New DataTable
dt = griglia.DataSource()
NumRecord = dt.Rows.Count
End Select
Resto = NumRecord Mod PageSize
Pagine = NumRecord \ PageSize
If (Resto > 0) Then
Pagine += 1
End If
If (NumRecord > PageSize) Then
If (griglia.CurrentPageIndex >= Pagine) Then
griglia.CurrentPageIndex = Pagine - 1
Else
griglia.CurrentPageIndex = 0
End If
End If
Non dovrei aver commesso errori....
Il problema è che non appena clicco sulla seconda pagina, non me la carica e rimane sempre sulla prima....
N.b.: quando calcolo Resto e Pagine tu usi gli operatori "%" e "/" che sono pari ai miei "MOD" (calcola il resto della divisione) e "\" calcola la parte intera della divisione.
Grazie comunque per l'interessamento.