De Contrôle de l'utilisateur avec le fichier CSS externe
J'ai un ASCX de contrôle de l'utilisateur dans la racine de mon application Web. Il fait référence à une feuille de style, quelque chose comme
<link type="text/css" rel="stylesheet" href="MyStyle.css" />
Le problème est que si toutes les pages ASPX situé en application des sous-dossiers référence de contrôle de l'utilisateur - ils ne pas voir la feuille de style, car href chemin est relatif et la feuille de style reste dans la racine d'application.
Est-il un moyen en plus de la copie de la CSS dans tous les sous-dossiers à universellement référence à partir de la racine? Je n'ai pas de problème de référencement JavaScript externe, à l'aide de ScriptManagerProxy je peux spécifier le chemin d'accès au fichier JS externe via ASP.NET "~/" notation qui est résolu dans le chemin réel à partir de n'importe quel endroit. Fait quelque chose de similaire existe pour le CSS?
OriginalL'auteur Yuriy Galanter | 2013-08-30
Vous devez vous connecter pour publier un commentaire.
ResolveUrl permettra de convertir de l'application des url relatives pour vous. http://msdn.microsoft.com/en-us/library/system.web.ui.control.resolveurl.aspx
EDIT: Si vous ne souhaitez pas utiliser de code en ligne de blocs
code-behind
balisage
<%= %>
(qui est l'équivalent de la Réponse.Écrire), puisqu'il peut se conduisent mal dans de nombreux cas (par exemple lorsque l'utilisateur le contrôle est à l'intérieur de UpdatePanel)Si vous ne souhaitez pas utiliser <%= %>, alors vous pouvez utiliser ResolveUrl dans le code-behind de votre ASCX de contrôle et d'utiliser un littéral de contrôle de sortie à la page.
OriginalL'auteur Lee Bailey
Comme je l'ai mentionné dans mes commentaires, je ne voulais pas utiliser <%= %> blocs. Mais je ne voulais pas céder URL du fichier CSS dans le code-behind, j'ai donc trouvé un compromis. Je déclare
<link>
tag avecrunat="server"
attribut et ASP.NET de style href:et puis dans le code-behind simple de résoudre ce lien
L'utilisation de cette approche en fin de compte, je peux créer une fonction qui accepte la page en tant que paramètre, boucles revue "le lien" balises, la résolution de leur Url.
uc1.ascs.cs
va faire faire usage de cettexlinkCSS.Attri...
ligne de code, brefcss classes
. J'espère que vous avez compris ma confusion. Merci!!!!pas sûr de ce que tu veux dire, mais le CSS peut être n'importe où dans votre application, ce qui peut le ASCX. Tant que vous utilisez l'approche ci-dessus pour indiquer le chemin d'accès relatif à la CSS - backend code peut le résoudre à l'emplacement réel.
OriginalL'auteur Yuriy Galanter
En fait, vous avez deux options:
1 - de l'inclure dans votre dossier thèmes, puis le asp.net cadre automatiquement inclure dans toutes les pages utilisant ce thème
2 - pour ajouter une variable publique dans votre CS code qui inclut le chemin d'accès, puis de l'utiliser dans votre code, comme le code suivant:
puis de l'utiliser dans le code ASP:
<%= %>
(qui est l'équivalent de la Réponse.Écrire), puisqu'il peut se conduisent mal dans de nombreux cas (par exemple lorsque l'utilisateur le contrôle est à l'intérieur de UpdatePanel). Pouvez-vous expliquer plus sur les Thèmes de l'approche?Dans le App_Themes dossier, vous pouvez ajouter votre propre thème pour l'application web, ce thème comprend des fichiers CSS, une fois que vous avez ajouté le thème de votre page, il ajoute automatiquement tous les fichiers CSS dans le dossier de votre page. et écrit le <lien> étiquette avec les bons chemins
Mais ne serait pas <link href> toujours pointer vers une URL spécifique?
Il permettra de résoudre l'URL .. relativement à la page web
OriginalL'auteur Hazem Torab
Vous devriez faire ensemble.le fichier de configuration et ensuite vous pouvez l'utiliser dans votre code
OriginalL'auteur Love Trivedi