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

Fo0Zie
Messages postés
95
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
8 juin 2009
- 17 févr. 2009 à 15:54
Fo0Zie
Messages postés
95
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
8 juin 2009
- 19 févr. 2009 à 09:13
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

Fo0Zie
Messages postés
95
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
8 juin 2009
1
18 févr. 2009 à 15:29
"
        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>
         
    
1
GillouXman
Messages postés
561
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
10 juin 2010

18 févr. 2009 à 10:04
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");


}
0
Fo0Zie
Messages postés
95
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
8 juin 2009
1
18 févr. 2009 à 11:49
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
0
GillouXman
Messages postés
561
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
10 juin 2010

18 févr. 2009 à 12:10
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Fo0Zie
Messages postés
95
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
8 juin 2009
1
18 févr. 2009 à 12:24
Ok d'accord !

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

18 févr. 2009 à 13:43
.....


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


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

myTextBox.Text = hf.value;

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

18 févr. 2009 à 13:55
qu'est ce qui ne fonctionne pas?

en debug, tu arrives à voir ce qu'il y a dans les objets?
0
Fo0Zie
Messages postés
95
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
8 juin 2009
1
18 févr. 2009 à 13:59
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.
0
GillouXman
Messages postés
561
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
10 juin 2010

18 févr. 2009 à 15:03
Ca veut dire que il ne trouev pas ton champ caché

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

18 févr. 2009 à 15:25
pourrais tu copier coller tuot le code que je vois ce qui se passe

parce que je cale pas là
0
Fo0Zie
Messages postés
95
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
8 juin 2009
1
18 févr. 2009 à 15:27
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
0
Fo0Zie
Messages postés
95
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
8 juin 2009
1
18 févr. 2009 à 15:30
Désolé ce n'est pas très lisible.
0
GillouXman
Messages postés
561
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
10 juin 2010

18 févr. 2009 à 15:48
il est ou ton champ caché avec l'id de la ligne?
0
Fo0Zie
Messages postés
95
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
8 juin 2009
1
18 févr. 2009 à 15:53
         '/>

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

18 févr. 2009 à 16:38
c pour ca

le champ doit se trouver dans le

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

18 févr. 2009 à 18:04
de rien

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