billou_13
Messages postés860Date d'inscriptionjeudi 4 mars 2004StatutMembreDernière intervention19 août 2014
-
3 juil. 2009 à 10:47
billou_13
Messages postés860Date d'inscriptionjeudi 4 mars 2004StatutMembreDernière intervention19 août 2014
-
8 juil. 2009 à 09:34
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)
{
}
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
---------------------
A voir également:
ASP.Net Server Control - Enregistrement d'un fichier javaScript
billou_13
Messages postés860Date d'inscriptionjeudi 4 mars 2004StatutMembreDernière intervention19 août 201429 3 juil. 2009 à 11:09
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
---------------------
billou_13
Messages postés860Date d'inscriptionjeudi 4 mars 2004StatutMembreDernière intervention19 août 201429 8 juil. 2009 à 09:31
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>
/// The <see cref="System.Web.UI.Control"/> which registers the javascript file.
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
---------------------
billou_13
Messages postés860Date d'inscriptionjeudi 4 mars 2004StatutMembreDernière intervention19 août 201429 8 juil. 2009 à 09:34
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
---------------------