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 :

coment accéder à un control se trouvant dans un user control


Sujet :

ASP.NET

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 85
    Points : 39
    Points
    39
    Par défaut coment accéder à un control se trouvant dans un user control
    Bonjours à tous,

    J'ai un petit problème, je n'arrive pas à accéder à un control (un label) se trouvant dans un user control lui même se trouvant dans un .aspx.

    À partir du code c# du fichier .aspx je voudrais rendre le label invisible si il remplit une condition.

    Dans mon code c# l'intellisense me retrouve bien mon user control mais pour le label ?

    Merci d'avance de bien vouloir m'aider, je ne sais plus quoi faire.

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    1 377
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 377
    Points : 1 628
    Points
    1 628
    Par défaut
    Citation Envoyé par zarzar4 Voir le message
    Bonjours à tous,

    J'ai un petit problème, je n'arrive pas à accéder à un control (un label) se trouvant dans un user control lui même se trouvant dans un .aspx.

    À partir du code c# du fichier .aspx je voudrais rendre le label invisible si il remplit une condition.

    Dans mon code c# l'intellisense me retrouve bien mon user control mais pour le label ?

    Merci d'avance de bien vouloir m'aider, je ne sais plus quoi faire.
    Soit via une propriété (accesseur) soit avec FindControl (monUC.FindControl) ...

    [edit]Par ailleurs il me semble que le mieux que tu puisse faire ce n'est pas de directement accéder à ton contrôle mais plutôt d'appeler un événement (ou une méthode ?) du UserControl, il me semble que ça soit une meilleure pratique, à confirmer cependant.[/edit]

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 85
    Points : 39
    Points
    39
    Par défaut
    Merci pour ta réponse, mais quand tu dit que mon control est prtected tu parle du label ou du user control ?

    Car dans le code c#, mon user control est public, il ya marqué :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public partial class uuu : System.Web.UI.UserControl
    peux-tu m'aider à y voir plus clair ?

    Merci.

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    1 377
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 377
    Points : 1 628
    Points
    1 628
    Par défaut
    Citation Envoyé par zarzar4 Voir le message
    Merci pour ta réponse, mais quand tu dit que mon control est prtected tu parle du label ou du user control ?

    Car dans le code c#, mon user control est public, il ya marqué :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public partial class uuu : System.Web.UI.UserControl
    peux-tu m'aider à y voir plus clair ?

    Merci.
    non oublie ça , relis ma réponse

  5. #5
    Membre confirmé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Points : 637
    Points
    637
    Par défaut
    Tu fais une propriete public dans ton UC afin de pouvoir y acceder.

    Du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
        public int BlaBla
        {
            get { return monChamps.Text; }
        }

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 85
    Points : 39
    Points
    39
    Par défaut
    Franchement j'ai essayé le get et le FindControl mais sa ne fonctionne pas.

    Si sa peut t'aider à savoir pourquoi na ne marche pas, mon label se trouve dans un formView qui est en readOnly.

    Si tu pouvais m'aider à régler ça, ce serait vraiment cool.

    Merci.

  7. #7
    Membre expérimenté Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Points : 1 352
    Points
    1 352
    Par défaut
    Enleve ton code de ton user controle, mets le dans une apge normale et fais le fonctionner deja. ca te sera peut etre plus facile de voir comment cela fonctionne ensuite.

  8. #8
    Membre confirmé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Points : 637
    Points
    637
    Par défaut
    As tu essayé ? :

    Dans ta page conteneur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    tonUserControl oTonUserControl = Page.FindControl('Id_UC') as tonUserControl;
     
    if(oTonUserControl!=null){
     
    Label oLabel = oTonUserControl.FindControl("Id_Label") as Label;
    if(oLabel!=null)
      oLabel.Text;
    }

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 85
    Points : 39
    Points
    39
    Par défaut
    Salut Topolino et merci de bien vouloir m'aider.

    Cependant quand j'utilise ton code j'ai une erreur qui s'affiche :

    Le type ou le nom d'espace de noms 'Societe' est introuvable (une directive using ou une référence d'assembly est-elle manquante ?

    Faut-il que déclare quelque part mon .ascx ?

    PS : ne m'en voulez pas je ne suis qu'un novice en .Net.

  10. #10
    Membre confirmé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Points : 637
    Points
    637
    Par défaut
    ton ascx est bien deja das ta page ?

    Si oui, il porte un nom.

    Donne un bout de code sinon.

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 85
    Points : 39
    Points
    39
    Par défaut
    Dans le .aspx de ma page mon user control est bien présent :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <uc:Societe id="s" runat="server" />
    Dans le .aspx.cs de la même page, j'ai mis ton code et sa ma généré l'erreur que j'ai posté précédemment.

  12. #12
    Membre confirmé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Points : 637
    Points
    637
    Par défaut
    quelle est le type de ton user control ?

    ca doit etre du type : uc_societe ?

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 85
    Points : 39
    Points
    39
    Par défaut
    j'ai mis uc_Societe avec le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    uc_Societe oTonUserControl = Page.FindControl('s') as uc_Societe;
     
            if (oTonUserControl != null)
            {
                Label oLabel = oTonUserControl.FindControl("lblNom") as Label;
                if (oLabel != null)
                    oLabel.Text = "aaaaaaaaaaa";
            }
    mais sa me donne cette erreur :

    La méthode surchargée correspondant le mieux à 'System.Web.UI.Control.FindControl(string)' possède des arguments non valides

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 85
    Points : 39
    Points
    39
    Par défaut
    j'ai mis ("s") à la place de ('s') et la au moins sa compile.

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 85
    Points : 39
    Points
    39
    Par défaut
    j'ai remis ('s') car je me suis rendu compte qu'on pouvait mettre n'importe quoi entre les doubles cot.

    Je n'ai toujours pas résolu le problème mais en tout cas, merci à tout ce qui m'aident.

  16. #16
    Membre confirmé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Points : 637
    Points
    637
    Par défaut
    je suis allez trop vite, effectivement il faut des double quote au lieu des simples.

    J'espere que tout fonctionne pour toi.

  17. #17
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 85
    Points : 39
    Points
    39
    Par défaut
    je me suis rendu compte qu'on pouvait mettre n'importe quoi entre les doubles cot, et quand je veut modifier le texte du label sa ne fonctionne pas ; sa compile mais le texte n'a pas changé.

  18. #18
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 85
    Points : 39
    Points
    39
    Par défaut
    FindControl("monControl") retourne bien le control ou autre chose ?

  19. #19
    Membre confirmé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Points : 637
    Points
    637
    Par défaut
    Regarde s'il passe dans la condition.
    Il faut sans doute placer le code dans loadComplete.

    Sinon la meilleur solution reste les accesseurs.

    Sinon regarde du cote de Page.Items.

  20. #20
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 85
    Points : 39
    Points
    39
    Par défaut
    Merci à toute les personnes qui ont bien voulu m'aider même si je n'ai pas réussi à résoudre mon problème.


+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Accéder à un bouton se trouvant dans un DataGrid
    Par CARNIBAL dans le forum Silverlight
    Réponses: 4
    Dernier message: 10/04/2009, 11h27
  2. Popup non reconnu dans mon user control
    Par jalam dans le forum ASP.NET
    Réponses: 6
    Dernier message: 16/07/2008, 16h21
  3. Affichage d'une image dans un user control
    Par fabfor dans le forum ASP.NET
    Réponses: 2
    Dernier message: 30/04/2007, 17h13
  4. Réponses: 1
    Dernier message: 09/11/2006, 13h34
  5. Accéder aux variables se trouvant dans un autre fichier
    Par towogy dans le forum Autres langages pour le Web
    Réponses: 9
    Dernier message: 18/08/2006, 15h06

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