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 :
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 SELECT IdPublicite, NomCategorie, NomRegie, TitrePub FROM dbo.Publicite
Ensuite je rempli tout ce petit monde comme ça :
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 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
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
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.
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
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 :
Classique en gros.
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
Est ce q'uil y a un détail qiu m'échappe sur la gestion du changement de page ?
Merci pour votre aide.
Partager