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 :

[C#]control dynamique


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Novembre 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 10
    Par défaut [C#]control dynamique
    J'avais déjà posé la question mais le tread à été supprimer ,

    Je place par exemple un control TextBox en dynamique, si je veus récupérer la valeur entrée dans le textbox, il me dit ce textbox n'existe pas. Je sais qu'il faut placer un id sur le textbox, qu'il faut recréé un autre textbox en fesant un find sur la page de l'id du 1er textbox, mais plus moyen de me souvenir de la commande.

    Merci pour votre aide.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 8
    Par défaut
    je ne comprends pas trop où est ton problème : même pour un textBox placé en dynamique, tu peux récupérer sa valeur en faisant :
    leNomDeTonTextBox.Text

    je n'ai pas dû comprendre ta question.... peux tu y joindre un bout de code?

  3. #3
    Membre habitué
    Inscrit en
    Novembre 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 10
    Par défaut
    voilà l'erreur :

    Message d'erreur du compilateur: CS0246: Le type ou le nom d'espace de noms 'MonText' est introuvable (une directive using ou une référence d'assembly est-elle manquante ?)

    Voilà un bout de code:

    TextBox MonText= new TextBox();
    MonText.Id = "MonText";
    PlaceHolder1.Controls.Add(MonText);

    et dans une autre fonction là ou je récupère la valeur lors d'un clic bouton:

    MaVar = MonText.Text;

    MonText n'existe pas, il faut que je fasse un find du control sur la page grâce à l'id, je sais qu'on peu le faire mais plus moyen de me souvenir comment.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 8
    Par défaut
    je pense que ton problème vient du fait que tu déclares ton textBox dans une méthode et donc qu'il n'est visible qu'à l'intérieur de cette méthode :

    essaye de déclarer ton textBox en variable globale :

    private TextBox monText;

    pour ce qui est de l'instantiation, laisse-la dans la méthode où tu l'avais mise :
    MonText= new TextBox();
    PlaceHolder1.Controls.Add(MonText);

    à partir de là, l'expression : MaVar = MonText.Text dans une autre méthode ne devrait plus poser de problème.

    Pour la méthode "find", désolé, je ne peux pas t'aider, je connais pas...

  5. #5
    Membre habitué
    Inscrit en
    Novembre 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 10
    Par défaut
    j'ai finalement retrouvé

    Voilà le code pour ceux que cela interesse

    TextBox MonText = new TextBox();
    MonText.ID = "MonText";
    PlaceHolderAdminNews.Controls.Add(MonText);

    et dans l'autre fonction :

    TextBox MonText2 = (TextBox)FindControl("MonText");

    Permet de retrouver un controle placer sur la page

    Merci encore macfred

  6. #6
    Futur Membre du Club
    Inscrit en
    Août 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3
    Par défaut
    J'ai une erreur dans mon code pour récupérer le champs texte de mes textbox dynamique :

    j'ai ce code-ci :

    TextBox mensu = new TextBox();
    mensu.ID = "mensu" + i;
    PlaceHolder1.Controls.Add(mensu);

    pour créer les textbox dynamiquement

    et ceci pour récupérer ma variable
    TextBox tb = (TextBox)PlaceHolder1.FindControl("mensu" + i);
    Response.Write(tb.Text);

    j'obtiens l'erreur classique :
    "La référence d'objet n'est pas définie à une instance d'un objet."

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

Discussions similaires

  1. [VB6]comment supprimer dynamiquement un controle dynamique?
    Par totor le troll dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 06/07/2011, 21h10
  2. [VB.NET] Contrôle dynamique et évènements
    Par johann.C dans le forum ASP.NET
    Réponses: 4
    Dernier message: 30/11/2009, 10h45
  3. [VB.NET] Ajout de controles dynamiquement
    Par A77 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 25/04/2005, 09h00
  4. Réponses: 6
    Dernier message: 18/04/2005, 21h12
  5. [VB6] creation et gestion de contrôle dynamique
    Par olivierx dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 23/04/2004, 00h09

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