IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Utilisation de paramètres dans url dans un gridview


Sujet :

ASP.NET

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    526
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 526
    Points : 224
    Points
    224
    Par défaut Utilisation de paramètres dans url dans un gridview
    Bonjour,

    J'ai un gridview contenant deux colonnes Code et FJ (une colonnes de texte et une colonne sous forme de boutons images):

    Ce que je voudrais, c'est qu'en cliquant sur le bouton image d'une ligne, cela me redirige vers une autre page avec comme paramètre dans l'URL la valeur du Code de la ligne correspondante.
    Je pensais avoir compris le principe lors d'une précédente utilisation, mais cela n'a pas l'air d'être le cas.

    Pour l'instant, mon code se présente sous la forme :

    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
    <asp:GridView ID="GridView1" runat="server" OnRowDataBound="GridView1_RowDataBound" AllowPaging="False" 
               AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="Code" 
              DataSourceID="SqlDataSource1" CssClass="StyleTab" CellPadding="10" HeaderStyle-ForeColor="White">
              <HeaderStyle CssClass="StyleEnteteTab" />
              <AlternatingRowStyle CssClass="StyleAltRows" />
     
               <Columns>
    <asp:BoundField DataField="Code" HeaderText="Code" 
                       SortExpression="Code" />
     <asp:TemplateField ShowHeader="False">
                    <ItemTemplate>
                        <asp:ImageButton ID="FichierJoint" runat="server" ImageUrl="/Images_Projet/Images/Fichier.png" width="22" height="22" PostBackUrl="~/GestionFichier.aspx?Code={0}"/>
                    </ItemTemplate>
                    <HeaderTemplate>
                        <asp:Label ID="FJ" runat="server" Text="Fichier Joint"></asp:Label>
                    </HeaderTemplate>
                   </asp:TemplateField>
     
     
              </Columns> 
    </asp:GridView>
    Le truc, c'est que j'obtiens à chaque fois comme paramètre dans l'url :Code={0}.
    Je voulais donc savoir comment on faissait exactement pour choisir la valeur à droite du = ?

    Merci.

  2. #2
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 236
    Points : 194
    Points
    194
    Par défaut
    Bonjour,

    Vous pouvez gérer ça en code behind dans l'évènement Row Created : pour chaque row normalement vous avez l'ID et vous construisez votre url.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    526
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 526
    Points : 224
    Points
    224
    Par défaut
    J'ai essayé d'utiliser la méthode onrowcommand du gridview de cette manière afin de récupérer la valeur du code de ma ligne sélectionnée :

    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
    protected void CustomersGridView_RowCommand(Object sender, GridViewCommandEventArgs e)
            {
                // If multiple buttons are used in a GridView control, use the
                // CommandName property to determine which button was clicked.
                if (e.CommandName == "SelectionDossier")
                {
                    // Convert the row index stored in the CommandArgument
                    // property to an Integer.
                    int index = Convert.ToInt32(e.CommandArgument);
     
                    // Retrieve the row that contains the button clicked 
                    // by the user from the Rows collection.
                    string num = GridViewPlanActions.Rows[index].Cells[1].ToString();
     
                    //Response.Write(num);
     
                }
            }
    avec

    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
     <asp:GridView ID="GridViewPlanActions" runat="server" OnRowDataBound="GvCustomers_RowDataBound" AllowPaging="False" 
               AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="Code" 
               DataSourceID="SqlDataSource1"  CssClass="StyleTab" CellPadding="10" onrowcommand="CustomersGridView_RowCommand" >
     
    ...
     
    <ItemTemplate>
                        <asp:ImageButton ID="FichiersJointsPlanActionImmediate" runat="server" ImageUrl="/Images_Projet/Images/Fichier.png" width="22" height="22" CommandName="SelectionDossier" PostBackUrl="~/DetectionTraitement.aspx"/>
                    </ItemTemplate>
                    <HeaderTemplate>
                        <asp:Label ID="FJ" runat="server" Text="Fichiers Joints"></asp:Label>
                    </HeaderTemplate>
                   </asp:TemplateField>   
     
    ...
    Mais j'ai un message d'erreur au niveau de la syntaxe de la chaine d'entrée
    int index = Convert.ToInt32(e.CommandArgument);
    Je ne comprend pas car c'est un bout de code tiré d'ici ?

  4. #4
    Expert confirmé
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Points : 4 066
    Points
    4 066
    Par défaut
    Es-tu sûr que e.CommandArgument contient un entier ?
    As-tu mis un BreakPoint pour visualiser sa valeur lors de l'execution ?
    Postes-tu un message sur ce forum dès que tu as erreur dans ton code ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Thickbox] Passer des paramètres d'URL dans un JS
    Par Erwan31 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 15/03/2009, 21h52
  2. Réponses: 3
    Dernier message: 12/12/2008, 08h05
  3. Réponses: 3
    Dernier message: 05/12/2008, 11h59
  4. Problème paramètre chemin dans url
    Par m@t dans le forum Langage
    Réponses: 17
    Dernier message: 09/03/2006, 22h09
  5. Réponses: 2
    Dernier message: 21/09/2005, 17h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo