begin process at 2010 03 19 09:12:48
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ASP.NET

 > 

Scripting

 > 

Javascript

 > 

ASP.Net Server Control - Enregistrement d'un fichier javaScript


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

ASP.Net Server Control - Enregistrement d'un fichier javaScript

vendredi 3 juillet 2009 à 10:47:11 | ASP.Net Server Control - Enregistrement d'un fichier javaScript

billou_13

Membre Club
Bonjour,

Je m'en remet à vous pour m'aider à résoudre un petit problème.
Je développe actuellement une librairie de "Server Control" pour une appli Web.
Certains "Server Control" se verront dotés de propriétés (onblur, onclick,...) qui déclencheront une action javaScript.
Exemple:
public class CustomControl : WebControl
{
        public CustomControl()
            : base(HtmlTextWriterTag.Div)
        {
        }

        protected override void AddAttributesToRender(HtmlTextWriter writer)
        {
            base.AddAttributesToRender(writer);

            writer.AddAttribute("onblur", "javascript:foo();");
        }
}

Cependant, j'aimerais que le corps de ma méthode "foo()" appartienne à un fichier javascript (.js) [lui même inclus (content, ou embedded ressource) dans le projet de librairie des "servers controls"].
C'est pourquoi il faudrait que mon "CustomControl" enregistre automatiquement le fichier javascript afin que la page html contiennet le tag:
<script language="javascript" type="text/javascript" src="foo.js">
</script>

Et c'est là que je bloque et que je m'en remet à vous. Comment feriez-vous ?
Je sens que l'enregistrement du fichier ne sera pas possible car ce fichier ne se trouve pas sur le site Web (en même temps, ce n'est pas logique de séparer le control et son javascript associé [c'est pour cela que je préfère le laisser dans la librairie]).
J'ai donc pensé que l'on pourrait appelé un Page.ClientScript.RegisterClientScriptBlock qui injecterai le javascript de "foo.js" à la volée seulement je ne sais pas si j'aurai accès à la page lorsque le CustomControl fera son Render.

Qu'en pensez-vous ?

Merci par avance pour votre aide,

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
vendredi 3 juillet 2009 à 11:09:35 | Re : ASP.Net Server Control - Enregistrement d'un fichier javaScript

billou_13

Membre Club
Re,

En fait, je suis un peu bête. J'ai bien accès à ma page à partir de mon controle de la façon suivante:
this.Page.ClientScript.RegisterClientScriptBlock(...)

Je vais donc faire de cette façon pour l'instant mais je reste ouvert pour de nouvelles propositions.

Merci,

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
mercredi 8 juillet 2009 à 00:44:37 | Re : ASP.Net Server Control - Enregistrement d'un fichier javaScript

jesusonline

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
Bonjour,

Tu peux utiliser la méthode Page.ClientScript.GetWebResourceUrl. J'explique son fonctionnement (ainsi que d'autres astuces) ici : http://blogs.developpeur.org/cyril/archive/2006/12/24/webresource-et-performsubstitution.aspx 


Cyril - MVP ASP.net - MCPD ASP.net & MCTS SQL - Consultant indépendant
mercredi 8 juillet 2009 à 09:31:40 | Re : ASP.Net Server Control - Enregistrement d'un fichier javaScript

billou_13

Membre Club
Merci pour la réponse !
Je vais regarder cela de suite.

Pour info: pour l'instant, j'ai mis en place une classe statique me permettant d'enregistrer un fichier javascript (en mode: embedded resource):
public static class ControlHelper
{
     /// <summary>
     /// Registers a javascript file for web page.
     /// </summary>
     /// <param name="control">The <see cref="System.Web.UI.Control"/> which registers the javascript file.</param>
     /// <param name="path">The file path.</param>
     public static void RegisterJavaScriptFile(Control control, string path)
     {
         string key = Path.GetFileNameWithoutExtension(path);

         if (control.Page.ClientScript.IsClientScriptBlockRegistered(control.Page.GetType(), key))
         {
             return;
         }

         StringBuilder javaScript = new StringBuilder();
         Assembly assembly = Assembly.GetExecutingAssembly();
         using (TextReader reader = new StreamReader(assembly.GetManifestResourceStream(path)))
         {
             try
             {
                 javaScript.AppendLine(reader.ReadToEnd());
             }
             finally
             {
                 reader.Close();
             }
         }

         control.Page.ClientScript.RegisterClientScriptBlock(control.Page.GetType(), key, javaScript.ToString(), true);
     }
}

Exemple d'utilisation:
ControlHelper.RegisterJavaScriptFile(this, "namespace.subdir.file.js");
//Lorsque je suis dans mon CustomControl (pour le this ^^).
//Le path du fichier js qui n'est pas tout à fait le path mais plutôt une chemin [je ne sais même pas comment on appelle ça].

Bonne journée,

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
mercredi 8 juillet 2009 à 09:34:05 | Re : ASP.Net Server Control - Enregistrement d'un fichier javaScript

billou_13

Membre Club
Nickel ton post jesusonline !
J'étais pas très loin qd même
Ca va me servir à fond.

Bonne journée,

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------


Cette discussion est classée dans : fichier, javascript, server, control, customcontrol


Répondre à ce message

Sujets en rapport avec ce message

acces au javaScript [ par lilippx ] bonjour,je viens de creer un control web personalisé qui a pour arriere plan un fichier swf(flash), ce meme fichier appele un javaScript pour se redes pb de recupération de paramétre [ par babylonne ] Bonjour tt le monde, j'ai un petit souci par rapport au fichier resultat.aspx c-à-d quand je transmets mes paramétres depuis le fichier info.aspx , il Control ASP.NET + Javascript [ par yanis7518 ] Salut a tousest-il possible d'assigner une fonction javascript à un control ASP.NET???? si oui comment???(par exemple assigner un onclick à une texbox control serveur Login / Javascript [ par robbielove ] BonjourJ'utilise un contrôle Login pour l'authentification sur mon site Web et ça fonctionne très bien. Cependant, je souhaiterais qu'en appuyant sur joindre un fichier xml a une base de donnees sql server [ par anis13014 ] bonjour voila j'ai un probleme j'ai un fichier xml et je voudrais a partir creer une table sql server correspondant le joindre en quelques sorte dés q Control Utilisateur ASP.NET, Tableau, XML, XSLT [ par Anksunamon ] Bonjour à tous,J'ai une question qui pourrait être utile à pas mal de monde...Je souhaiterais faire un contol utilisateur me permettant:de créer un ta Vérifier un lien [ par Vanessa ] j'ai un lien vers un fichier (http://server.com/fichier.truc) et j'aimerais savoir si le lien est toujours valide ...j'ai essayé ça :----------------- Upload fichier sur server de bd [ par yanualed ] Bonjour tt l'monde,je voudrais uploader un fichier texte sur mon serveur de BD et je sais pas comment faire, j'ai trouvé des scripts qui permettent d' Charger un fichier javascript dans un updatepanel [ par hysteria31 ] Bonjour à tous,J'ai de nouveau un soucis avec l'updatepanel. Je vous présente le contexte. J'ai un projet principal composé d'un updatepanel. Lorsque Recuperation de donnée d'un fichier xml pour ajouter dans une BDD sql server 2000. [ par nicko59 ] Amis du jour, bonjour,Bon, voila, j'ai un p'tit soucis...je n'arrive pas à récupérer les bonnes données de mot fichier xml...en fait, mon fichier xml


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,328 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales