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