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 :

Ajouter du javascript à un Controle personnalisé (CompositeControl) ?


Sujet :

ASP.NET

  1. #1
    Membre actif
    Inscrit en
    Janvier 2008
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 70
    Par défaut Ajouter du javascript à un Controle personnalisé (CompositeControl) ?
    Bonjour à tous,

    J'ai besoin de développer un objet de façon propre et réutilisable.
    J'ai déjà développé cet objet mais d'une façon impropre (une classe .cs avec une méthode toString() qui me retourne du code html brut, en prenant en compte différentes propriétés définies à l'aide de méthodes diverses de cette même classe).

    J'ai donc parcouru la msdn et j'y ai trouver plusieurs façon de faire :
    - Les UserControls (ascx)
    - Les WebControls personnalisés (héritage de WebControl)
    - Les CompositeControl (héritage de CompositeControl)

    Je compte me lancer dans un CompositeControl.

    Mais je n'ai pas trouvé dans la msdn comment faire pour ajouter un comportement client à mon nouvel objet. Y a t'il un moyen d'ajouter un webressource ou quelque chose comme ça ?

    Comment fait on ça proprement ?

    Sinon je vais devoir encore mettre un href dans le <head> des pages avec un lien vers un fichier javascript..

    D'avance merci beaucoup

  2. #2
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Par défaut
    le comportement client tu peux le faire en ajoutant des attributs à tes divers control.
    tu dois avoir une methode AddAttibutes. mate dans la msdn

  3. #3
    Membre actif
    Inscrit en
    Janvier 2008
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 70
    Par défaut
    Bonjour rattlehead,

    merci..

    je viens de voir dans google qu'on peut le faire en ajoutant les fichiers javascript dans l'assambly..

    J'ai jamais fait ça. Il suffirait de compiler la dll avec les classes .cs et les fichiers javascript ?

    Pour les attributs, oui, je vois, je les utilises déjà (onclick, onchange, etc..) dans les monObjet.Attributes["onMachin"]="mafonction()".

    A priori, je devrai donc ajouter ces attributs à mes controles, en faisant appel à mes fonctions javascript qui sont dans mon fichier js.

    Ca s'éclaircit un peu..

    Il me resterai donc juste à savoir comment compiler dans une dll en englobant les fichiers javascript..

    Mais en même temps, c'est dommage car je voulais pas faire de dll, je voulais garder mes CompositeControl dans App_Code comme indiqué dans la msdn (ils disent qu'on peut soit compiler dans une dll soit les garder dans App_Code comme on veut : mais pas les deux en même temps sinon le compilateur comprend plus)

  4. #4
    Membre Expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Par défaut
    Le mieux est quand même de les compiler dans une DLL. Question de performances.

    Pour ajouter un fichier javascript dans un assembly, il faut le spécifier comme ressources intégrée (cela se fait depuis les propriétés du fichier dans VS, il faut spécifier ressource intégrée).

    Ensuite, il faut préciser qu'il fait partie de l'assembly. Cela se fait via la commande assembly: WebResource().

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    [assembly:WebResource("Mon.Nom.De.NameSpace.Nom.Fichier.Extension", "type/mime")]
    Où type/mime est par exemple : "text/javascript".

    Ensuite, pour l'utiliser, cela se fait via la fonction GetWebResourceUrl. Par exemple, pour demander l'inclusion du Javascript :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    this.Page.ClientScript.RegisterClientScriptInclude("MonScript", this.Page.ClientScript.GetWebResourceUrl(this.GetType(), "Mon.Nom.De.NameSpace.Nom.Fichier.Extension"));
    et voilà !

  5. #5
    Membre actif
    Inscrit en
    Janvier 2008
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 70
    Par défaut
    Bonjour PongTen,

    merci beaucoup..

    Je vais voir ça surement dans l'aprés midi ou demain (je suis en train de coder mon composite).

    Je mets en résolu

    bonne journée

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 12/10/2009, 17h03
  2. Réponses: 15
    Dernier message: 06/08/2007, 12h07
  3. [C#] Ajout en dynamique de controles dans un PlaceHolder
    Par fredo_lefran dans le forum ASP.NET
    Réponses: 16
    Dernier message: 06/07/2006, 14h41
  4. javascript du controle
    Par ridondo dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 15/11/2005, 11h45
  5. [VB.NET] Evenement par défaut sur controle personnalisé
    Par anthony70 dans le forum Windows Forms
    Réponses: 7
    Dernier message: 31/08/2004, 16h19

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