Je crée un contrôle de script personnalisé dans ASP.NETAjouter un contrôle à l'en-tête de page dans ASP.NET
Le but du contrôle est tout simplement une variante de serveur de la balise, utilisé pour charger les fichiers javascript Le but principal de ce contrôle est toutefois de combiner plusieurs scripts en une seule réponse. Du côté client, ils voient quelque chose comme tag pour chaque emplacement, de sorte que tous les scripts enregistrés dans l'emplacement DocumentTop seront combinés en une seule étiquette à l'exception du emplacement "en ligne", tous les scripts en ligne sont rendus individuellement où ils existent dans le balisage J'ai également créé un httphandler, js.ashx, qui fait la combinaison réelle des scripts
Tout fonctionne bien sauf pour le « chef » lieu, pour les deux emplacements de document que j'utilise simplement le ClientScriptManager pendant prerender mais pour l'emplacement Head i ont essayé le code suivant lors de la pré rendre
var scriptControl = new HtmlGenericControl("script");
scriptControl.Attributes["language"] = "javascript";
scriptControl.Attributes["type"] = "text/javascript";
scriptControl.Attributes["src"] = src;
Page.Header.Controls.Add(scriptControl);
et je obtenez l'erreur suivante: La collection de contrôle ne peut pas être modifiée pendant les phases DataBind, Init, Load, PreRender ou Unload.
Est-ce que quelqu'un sait comment ajouter un contrôle à l'en-tête de page à partir d'un contrôle personnalisé? Incidemment, le contrôle est utilisé sur une page de contenu qui a deux maîtres imbriqués et a également un ScriptManager enregistré sur le maître racine. Le projet est un projet d'application web asp.net 3.5
Salut Canavar J'utilise avec succès le Page.ClientScript pour enregistrer des scripts dans le corps du document, la question tente d'enregistrer une balise de script à l'intérieur de l'étiquette
, mes connaissances, this.Page.ClientScript.RegisterClientScriptInclude enregistre le js juste après la balise