J'utilise le code ci-dessous pour inclure dynamiquement un fichier CSS:ASP.NET - Comment inclure CSS seulement s'il n'est pas déjà inclus?
HtmlHead head = (HtmlHead)Page.Header;
HtmlLink link = new HtmlLink();
link.Attributes.Add("href", Page.ResolveClientUrl("~/App_Themes/Default/StyleSheet.css"));
link.Attributes.Add("type", "text/css");
link.Attributes.Add("rel", "stylesheet");
head.Controls.Add(link);
Le problème est: Je veux le faire qu'une seule fois, et que si elle n'est pas alrealy inclus dans la page.
Comment vérifier si elle est déjà incluse?
Edit:
Réponses me disent d'inclure dans le chargement de la page à l'aide !IsPostBack
ne résoudra pas mon problème, car ce code sera à l'intérieur d'un contrôle utilisateur Web et ma page peut avoir beaucoup du même utilisateur contrôle.
Par exemple, j'utiliser le code ci-dessous pour le faire avec javascript:
if (!Page.ClientScript.IsClientScriptIncludeRegistered("jsScript"))
{
Page.ClientScript.RegisterClientScriptInclude("jsScript", ResolveUrl("~/Utilities/myScript.js"));
}
Si votre CSS est raisonnablement bien structuré, il s'agit probablement d'une optimisation prématurée. Je ne peux pas imaginer que vous utilisiez autant de CSS que cela ralentirait considérablement le navigateur. –
@Robert Harvey: Je connais l'homme, probablement il ne ralentira pas mon application, je n'aime pas l'idée de mettre du code indésirable dans ma page, aujourd'hui je mets un CSS avec seulement 5KB, mais demain quand Je l'ai mis avec 50KB, donc ce sera un problème ... – Tufo
@Jason: Donc, je dois être plus susceptible d'afficher des questions plus simples? Si vous regardez mes questions, vous vous rendrez compte qu'elles sont toutes complexes et personne n'a répondu à quelque chose qui a résolu le problème. – Tufo