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 :

Les ID des controles d'un GridView


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut Les ID des controles d'un GridView
    Bonjour

    J'ai mis en palce un GridVeiw dans un UpdatePanel. Je précise ça, car je me demande si ça vient de là ou pas.

    Je construis mon GridView intégralement en CodeBehind, la seule chose que j'ai fait côté HTML est de mettre tout nu dans l'UpdatePanel.

    Lorsque je clique sur un des boutons action que je rajoute, j'ai un message d'erreur qui me parle d'un contrôle qui n'aurais pas d'ID ou un ID en double. J'ai beaucoup de mal à comprendre.

    Vu que ce mesage arrive en popup Jscript, je ne peux pas vous le retranscrire, mais j'ai pris une photo.

    J'ai remarqué que ce mesage apaprait lorsque je rajoute un ImageField dans le GridView. Vous verrez cela dans le code de construction du GridView, c'est le contrôle "StatutEnvoi". Je le mets pas, tout va bien.

    Voici donc le code :
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
     
    Sub ConstruireGV()
    		LogageOW("Je passe dans le ConstruireGV")
    		Dim idcampagne, libelle, objet, regie, boolactif As New BoundField
    		With idcampagne
    			.HeaderText = "ID"
    			.DataField = "Id_Campagne"
    		End With
    		With libelle
    			.HeaderText = "Libellé"
    			.DataField = "Libelle"
    			.SortExpression = "Libelle"
    		End With
    		With objet
    			.HeaderText = "Objet"
    			.DataField = "Objet"
    			.SortExpression = "Objet"
    		End With
    		With regie
    			.HeaderText = "Régie"
    			.DataField = "Regie"
    			.SortExpression = "Regie"
    		End With
     
    		Dim apercu, actif As New TemplateField
    		With apercu
    			.ItemTemplate = New TemplatePopup(DataControlRowType.DataRow, "Id_Campagne", "Apercu")
    			.HeaderTemplate = New TemplatePopup(DataControlRowType.Header, "Aperçu", "Apercu")
    		End With
    		With actif
    			.ItemTemplate = New TemplatePopup(DataControlRowType.DataRow, "Actif", "Actif")
    			.HeaderTemplate = New TemplatePopup(DataControlRowType.Header, "Actif", "Actif")
    		End With
     
    		Dim test, envoi, segment, modif As New ButtonField
    		With test
    			.HeaderText = "Test"
    			.ButtonType = ButtonType.Image
    			.ImageUrl = "~/App_Themes/" & GetNomsite() & "/lettresinfo.png"
    			.CommandName = "Test"
    		End With
    		With envoi
    			.HeaderText = "Envoi"
    			.ButtonType = ButtonType.Image
    			.ImageUrl = "~/App_Themes/" & GetNomsite() & "/lettresinfo.png"
    			.CommandName = "EnvoiMail"
    		End With
    		With segment
    			.HeaderText = "@"
    			.ButtonType = ButtonType.Image
    			.ImageUrl = "~/App_Themes/" & GetNomsite() & "/lettresinfo.png"
    			.CommandName = "Segment"
    		End With
    		With modif
    			.HeaderText = "Modif"
    			.ButtonType = ButtonType.Image
    			.ImageUrl = "~/App_Themes/" & GetNomsite() & "/modifier_16.png"
    			.CommandName = "Modif"
    		End With
     
    		Dim StatutEnvoi As New ImageField
    		With StatutEnvoi
    			.HeaderText = "Envoi"
    			.DataImageUrlField = "Envoi"
    			.DataImageUrlFormatString = "~/App_Themes/" & GetNomsite() & "/{0}.png"
    		End With
     
    		With gvCampagne
    			With .Columns
    				.Clear()
    				.Add(idcampagne)
    				.Add(libelle)
    				.Add(objet)
    				.Add(regie)
    				.Add(apercu)
    				.Add(test)
    				.Add(envoi)
    				.Add(actif)
    				.Add(StatutEnvoi)
    				.Add(modif)
    			End With
    			.DataSourceID = "sdsGvCampagne"
    		End With
    	End Sub
    J'ajoute la photo du message en pièce jointe.

    Merci pour votre aide.

  2. #2
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Essaye de setter à la main les ID des controls que tu crées

  3. #3
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Le problème c'est qu'il n'y a pas d'ID pour les ImageField. Avant la rupture tu m'avais déjà dit ça, mais t'a pas eu ma réponse.

    En fait, je sais pas comment il fait pour s'y retrouver, mais visiblement il se mélange les pinceaux sur ce coup là.

    Pas d'ID non plus sur aucun des contrôles d'un GridView, ou alors bien caché.

  4. #4
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Ok.

    L'id que t'as dans le message d'erreur javascript, il correspond à quel control?

  5. #5
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Ton UP a bien ChildrenAsTriggers à True ?

  6. #6
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Citation Envoyé par lutecefalco Voir le message
    Ok.

    L'id que t'as dans le message d'erreur javascript, il correspond à quel control?
    Aucune idée. dans le source interprété de la page, je le retrouve pas. J'ai essayé de compendre, mais je trouve pas de correspondance.
    La chose que j'ai remarqué c'est que, peu importe le bouton que je clique, c'est toujours le même message avec le même ID.

    Citation Envoyé par calagan99 Voir le message
    Ton UP a bien ChildrenAsTriggers à True ?
    Non, pas explicitement, mais j'ai lu dans la doc que c'était la valeur par défaut. Aprés test en ayant explicitement mis la valeur, ben toujours pareil.

  7. #7
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    J'ai rajouté un truc dans le DataRowBound, histoire de dire que je fixe un id.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dim imgStatut As Image = CType(e.Row.Controls(8).Controls(0), Image)
    imgStatut.ID = "imgStatut" & CType(DataBinder.Eval(e.Row, "DataItem.Id_Campagne"), String)
    A ma grande surprise ça marche.

    Par contre, ça ne règle pas le problème, le message apparait toujours. ce qui m'échappe le plus, c'est si je ne mets pas cette image, ben ça marche nickel.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/07/2009, 14h28
  2. Recuperer les valeurs des lignes crocher dans gridview
    Par loubna_drime dans le forum ASP.NET
    Réponses: 0
    Dernier message: 27/05/2009, 15h38
  3. Réponses: 1
    Dernier message: 09/11/2006, 13h34
  4. Réponses: 3
    Dernier message: 17/07/2006, 16h42
  5. Réponses: 9
    Dernier message: 23/05/2006, 15h33

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