Grid View récupérer l'id de la ligne sélection avec un imgButton

Signaler
Messages postés
95
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
8 juin 2009
-
Messages postés
95
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
8 juin 2009
-
Bonjour à tous,

J'ai un  problème avec mon grid view. Je n'arrive pas à récupérer l'id et la valeur (le texte) de ma ligne sélectionné à l'aide d'un imgButton dans mon code behind.
J'ai réussi en cochant "Activer la sélection" de mon gridView en mode design, et en utilisant la méthode:
        protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
        {
            GridViewRow row = GridView1.SelectedRow;

            this.txtBoxValeur.Text = row.Cells[1].Text;
        }
Le problème est que je veux le faire sur un image bouton et pas moyen de trouver. Voici ma colonne contenant les 2 images boutons :

                 
                     
                 
                   

Celle en gras et celle pour qui je voudrais récupérer les informations correspondants à la ligne sélectionnée.

20 réponses

Messages postés
95
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
8 juin 2009
1
"
        SelectCommand="SELECT [perci_libelle], [id_personne_civilite] FROM [personne_civilite]"
        DeleteCommand="DELETE FROM [personne_civilite] WHERE [id_personne_civilite]=@id_personne_civilite">
        <DeleteParameters>
        
        </DeleteParameters>
    
         '/>   
     

          <Columns>
         
                  <HeaderStyle BackColor="#083D6D" ForeColor="White" />
                 
              <ControlStyle BackColor="White" ForeColor="#083D6D" />
              
             
                 
                     
                   
                  <ControlStyle BackColor="White" ForeColor="#083D6D" />
                  <FooterStyle BackColor="White" ForeColor="#083D6D" />
                  <HeaderStyle BackColor="#083D6D" ForeColor="White" />
                 
             
          </Columns>
         
    
Messages postés
561
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
10 juin 2010

Salut

une des solutions, c'est de placer un champ caché contenant l'id

tu récuperas ce champ en code client

ici j'ai pas fait de test sur le type de la commande, mais dans ton cas tu dois surement le faire.



' ...

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{

GridViewRow row = (GridViewRow)(((Button)e.CommandSource).NamingContainer);


HiddenField hf = (HiddenField)row.FindControl("myID");


}
Messages postés
95
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
8 juin 2009
1
Salut guillouXman.
Merci d'avoir répondu.
Mais il y'a un problème avec la méthode RowCommand, vu que je ne comprend pas trop ce que tu y fait je ne sais le résoudre.

Erreur    1    'System.EventArgs' ne contient pas de définition pour 'CommandSource'    F:\progiciel\gestion.aspx.cs    30    56    progiciel
Messages postés
561
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
10 juin 2010

la row command est lancée quand par exemple tu cliques sur un boutton qui contient comme proprété CommandName

dans mon gars

j'ai défini un CommandName ="Select"

donc lorsque je clique sur le boutton, le row_commaned est lancé

et le e.CommadName = "Select"

if (e.CommandName == "Select")
{

GridViewRow row = (GridViewRow)(((Button)e.CommandSource).NamingContainer);


HiddenField hf = (HiddenField)row.FindControl("myID");
}

mon grid
Messages postés
95
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
8 juin 2009
1
Ok d'accord !

Et comment je récupère dans une textbox par exemple,  la valeur de mon champ caché ?
Messages postés
561
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
10 juin 2010

.....


GridViewRow row = (GridViewRow)(((Button)e.CommandSource).NamingContainer);


HiddenField hf = (HiddenField)row.FindControl("myID");

myTextBox.Text = hf.value;

:)
Messages postés
95
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
8 juin 2009
1
C'est se que j'ai fait mais ça ne fonctionne pas.
Messages postés
561
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
10 juin 2010

qu'est ce qui ne fonctionne pas?

en debug, tu arrives à voir ce qu'il y a dans les objets?
Messages postés
95
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
8 juin 2009
1
Ca s'arrête sur myTextBox.Text = hf.value;

Et ça me dit :
La référence d'objet n'est pas définie à une instance d'un objet.
Et ma textBox ne contient rien.
Messages postés
561
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
10 juin 2010

Ca veut dire que il ne trouev pas ton champ caché

tu es sur que tu as appelé ton champ caché myID ?
Messages postés
95
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
8 juin 2009
1
Si l'Id est le nom  oui
Messages postés
561
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
10 juin 2010

pourrais tu copier coller tuot le code que je vois ce qui se passe

parce que je cale pas là
Messages postés
95
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
8 juin 2009
1
Je pense qu'il ne récupère pas l'id avec la fonction Eval, car sur une même page j'ai 3 grid view
Messages postés
95
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
8 juin 2009
1
Désolé ce n'est pas très lisible.
Messages postés
561
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
10 juin 2010

il est ou ton champ caché avec l'id de la ligne?
Messages postés
95
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
8 juin 2009
1
         '/>

en dessous du SqlDataSource
Messages postés
561
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
10 juin 2010

c pour ca

le champ doit se trouver dans le

sinon comment veux tu qu'il trouve le prop
"id_personne_civilite"
Messages postés
95
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
8 juin 2009
1
Merci c'est ça,maintenant je comprend mieux comment ça fonctionne.
Encore une fois merci, GuillouXman.
Messages postés
561
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
10 juin 2010

de rien

n'hésite pas si tu as des autres questions ou des choses que tu ne comprends pas très bien
Messages postés
95
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
8 juin 2009
1
Merci c'est très sympa !