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 :

Comment referencer un WebControl personnel dans un formulaire


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de titan_33
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 245
    Par défaut Comment referencer un WebControl personnel dans un formulaire
    Bonjour

    Dans ma classe MyTextBox qui se trouve dans le fichier /App_Code/MyTextBox.cs
    J'ai le code ci-dessous qui me permet de faire mon propre WebControl de type TextBox

    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
    [ValidationProperty("Valeur")]
    public class MyTextBox : WebControl
    {
        private string _valeur;
        public string Valeur
        {
            get { return _valeur; }
            set { _valeur = value; }
        }
     
        protected override void Render(HtmlTextWriter writer)
        {
            writer.WriteBeginTag("input");
            writer.WriteAttribute("id", ID);
            writer.WriteAttribute("type", "text");
            writer.WriteAttribute("value", _valeur);
            writer.Write(HtmlTextWriter.SlashChar);
            writer.Write(HtmlTextWriter.TagRightChar);
        }
    }
    Ensuite dans un formulaire aspx je voudrais utiliser mon contrôle. A priori le code ressemblerait à ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <Exemple:MyTextBox runat="server" 
                id="monControl" 
                Valeur="Une valeur" />
    Toutefois je suppose que je doit référencer mon contrôle dans mon formulaire avec une commande qui devrait s'approcher du code ci-dessous.
    Mais je n'ai pas de namespace, ni d'assembly car je suis dans le même projet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ Register TagPrefix="Exemple" Namespace="Quelque_chose" Assembly="Quelque_chose_autre" %>

    Merci du coup de pouce

    Titan

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Je crois que tu es obligé de mettre ton contrôle dans un namespace
    Pas la peine de préciser l'assembly

    EDIT: en fait j'ai dit une connerie, pas la peine de mettre le contrôle dans un namespace : il suffit d'indiquer "global" comme namespace dans la directive Register

  3. #3
    Membre Expert Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Par défaut
    Par contre les mettre dans un namespace ne peut pas etre une mauvaise chose en fait...

  4. #4
    Membre éclairé Avatar de titan_33
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 245
    Par défaut
    Salut Tomlev

    Ta méthode me plaie beaucoup mais cela ne fonctionne pas encore.
    Je pense que j'ai encore un petit ajustement à faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ Register Namespace="Global" TagPrefix="Exemple" TagName="MyTextBox" Src="~/App_Code/MyTextBox.cs" %>
    J'ai les erreurs suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Erreur	3	Un attribut 'tagname' manque à la directive.	D:\3wCgo\Amv_tel\WWW\Frm\_Validators.aspx	2	
    Erreur	4	Balise server inconnue*'Exemple:MyTextBox'.	D:\3wCgo\Amv_tel\WWW\Frm\_Validators.aspx	45	
    Erreur	11	Validation (XHTML 1.0 Transitional) : Ce nom contient des caractères en majuscules, lesquels sont interdits.	D:\3wCgo\Amv_tel\WWW\Frm\_Validators.aspx	47	13	D:\...\WWW\
    Erreur	12	Préfixe de balise ou filtre de périphérique non reconnu 'Exemple'.	D:\3wCgo\Amv_tel\WWW\Frm\_Validators.aspx	45	2	D:\...\WWW\
    Merci d'avance

    Titan

  5. #5
    Membre éclairé Avatar de titan_33
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 245
    Par défaut
    Dans mon POST PRECEDENT :

    j'ai oublié de mettre la déclaration de mon controle dans le formulaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <Exemple:MyTextBox runat="server" 
                id="monControl" 
                Valeur="Une valeur" />

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Il ne faut pas mettre l'attribut Src (ça ne sert que pour les UserControl .ascx), ni le TagName (le TagName à utiliser lors de la déclaration du contrôle sera celui de la classe). En fait il faut juste faire un mapping entre un TagPrefix et le namespace.

    Citation Envoyé par titan_33 Voir le message
    Dans mon POST PRECEDENT :

    j'ai oublié de mettre la déclaration de mon controle dans le formulaire
    Tu peux modifier un post en cliquant sur Editer...

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 17/02/2008, 15h54
  2. Comment vérifier une URL saisie dans mon formulaire ?
    Par cdevl32 dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 28/10/2007, 18h32
  3. Réponses: 1
    Dernier message: 25/10/2006, 18h06
  4. Réponses: 12
    Dernier message: 24/05/2006, 15h37
  5. comment afficher une image animée dans un formulaire
    Par dadamovic dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 13/05/2006, 18h59

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