J'ai construit un contrôle de serveur personnalisé qui utilise CSS personnalisé. Le problème que j'ai est que je dois définir une référence au fichier CSS sur chaque page que j'utilise le contrôle. P>
Puis-je définir cette référence à l'intérieur du contrôle? Afin que je puisse simplement ajouter le contrôle et ne pas vous inquiéter de la référence. P>
5 Réponses :
Ici ce que j'utilise pour ajouter CSS Référence à la page Programmatiquement:
HtmlLink link = new HtmlLink(); link.Href = relativePath; link.Attributes["type"] = "text/css"; link.Attributes["rel"] = "stylesheet"; Page.Header.Controls.Add(link);
Où dois-je intégrer cela dans le contrôle de serveur personnalisé?
Dans quelle phase du cycle de création?
CreateChildControls convient, je pense.
Je pense que vous pourriez ajouter Code de Canavar à une classe de base qui serait incluse avec toutes les classes qui en ont besoin .
myObject.Attributes.Add("class","customControl");
Si vous souhaitez la construction WebControl, cela sera réutilisable et dans un assemblage avec CSS, JS et d'autres ressources, que vous pouvez utiliser WebreResources P>
Vous devez suivre les étapes ci-dessous pour ajouter le CSS / JavaScript / Image dans le contrôle Web lui-même.
Modifiez le fichier AssemblyInfo.cs pour ajouter la ressource Web p>
[Assemblée: System.Web.UI.EbResource ("CustomControls.styles.Gridstyles.css", "Text / CSS"), EffectuerSubstitution = true)] P> LI>
Ajout des fichiers requis (CSS / JavaScript / Images) à la solution de contrôle de serveur personnalisé. Notez que nous pouvons ajouter des dossiers dans la solution et il suffit d'ajouter une distinction à l'aide de '.' (DOT) P> LI>
Plus important encore, nous devrions modifier la propriété de Buildaction du contenu à une ressource intégrée des fichiers CSS / JavaScript / JavaScript nouvellement ajoutés. P> Li>
En outre, nous devrions charger les ressources stockées de la DLL. Le meilleur événement pour cela serait surprerender Ci-dessous se trouve le code de code Rendu CSS P>
background: url('<%=WebResource("CustomControls.Styles.Cross.png")%>') no-repeat 95% 50%;