Bonjour tout le monde.

Là je suis confronté à un souci que j'ai beaucoup de mal à comprendre non seulement parce qu'il est bizarre mais en plus, je ne trouve pas sa logique.

Alors posons les éléments :
j'ai une proc stock qui me retourne des donéne sous cette forme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
SELECT IdPublicite, NomCategorie, NomRegie, TitrePub
FROM dbo.Publicite
J'ai posé un SQlDataSource et un GridView côté HTML comme cela :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
<asp:SqlDataSource ID="sdsListeConcours" runat="server" ConnectionString="<%$ ConnectionStrings:DataCon %>"></asp:SqlDataSource>
<asp:GridView ID="gvListeConcours" runat="server" DataKeyNames="IdPublicite" Width="100%"></asp:GridView>
Ensuite je rempli tout ce petit monde comme ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
With sdsListeConcours
            .SelectCommand = "EXEC maProc"
        End With
        Dim btn As New ButtonField
        With btn
            .Text = "Modifier"
            .CommandName = "Modifier"
            .ButtonType = ButtonType.Button
        End With
        With gvListeConcours
            .AllowPaging = True
            .PageSize = 20
            With .PagerSettings
                .Mode = PagerButtons.NumericFirstLast
                .Position = PagerPosition.Bottom
                .PageButtonCount = 5
            End With
            .DataSource = sdsListeConcours
            .Columns.Add(btn)
            .DataBind()
 
            .EmptyDataText = "Pas de concours disponible"
        End With
Ensuite je dis au bouton de m'envoyer sur une autre page avec un argument en Query
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
    Protected Sub gvListeConcours_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles gvListeConcours.RowCommand
        Select Case e.CommandName
            Case "Modifier"
                Response.Redirect(GetPage("GestionConcours", enTypeRetour.Lien) & "&idconcours=" & gvListeConcours.DataKeys(e.CommandArgument).Value)
        End Select
    End Sub
La Function GetPage() retourne une chaine qui se fabrique à partir d'info de la base de donnée et qui permet au REsponse.REdirect de fonctionner correctement. Ce point fonctionne correctement.

Le souci vient certainement du Paging. Tant que je suis sur la première page de donnée du GV, ça va. Dés que je passe sur la suivante il me renvoi les IdPublicité de la première page. Je ne comprend pas cette logique.

Pour gérer la changement de page j'ai fait ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
    Protected Sub gvListeConcours_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles gvListeConcours.PageIndexChanging
        gvListeConcours.PageIndex = e.NewPageIndex
        gvListeConcours.DataBind()
    End Sub
Classique en gros.

Est ce q'uil y a un détail qiu m'échappe sur la gestion du changement de page ?

Merci pour votre aide.