Quelle est la principale différence entre .skin
et .css
dans asp.net?.skin vs .css d'asp.net
.skin
est une nouvelle amélioration de l'IDE. Je travaille avec .css
. Ce qui est disponible en .skin
qui est de ne pas .css
grâce, SAJ
Quelle est la principale différence entre .skin
et .css
dans asp.net?.skin vs .css d'asp.net
.skin
est une nouvelle amélioration de l'IDE. Je travaille avec .css
. Ce qui est disponible en .skin
qui est de ne pas .css
grâce, SAJ
Dans le fichier de la peau, vous pouvez définir les propriétés des contrôles asp.net.
Par exemple,
<asp:TextBox runat="server" Width="200"/>
Tous les contrôles TextBox dans votre application auront la largeur 200.
Vous pouvez lui donner un nom et que les contrôles que vous le souhaitez, vous pouvez les mettre à appliquer une peau par exemple,
<asp:TextBox SkinID="MultiLineTextBox" runat="server" TextMode="MultiLine" Height="240"/>
maintenant dans une page Web lorsque ajoute le contrôle TextBox vous pouvez définir son SkinID être « MultiLineTextBox » comme suit,
<asp:TextBox runat="server" SkinID="MultiLineTextBox"/>
et donc il héritera du TextMode comme multilignes et la hauteur 240.
Pour utiliser la peau, vous devez ajouter un thème à votre application dans le dossier App_Themes et il vous ajoutez le fichier de la peau , maintenant pour utiliser ce thème dans vos pages, vous devez définir la propriété EnableTheming de la page sur true, StylesheetTheme ou Theme sur le nom de votre thème. Vous pouvez également définir ces propriétés dans le fichier de configuration.
Réglage du thème dans la ASPX page,
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" EnableTheming="true" StylesheetTheme="Your Theme Name" %>
Réglage du thème dans le web.config,
<configuration>
<system.web>
<pages styleSheetTheme="Your Theme Name"></pages>
</system.web>
</configuration>
Notez que en termes de ce que ces deux choses en fait faire il y a une différence considérable. Toutes les propriétés définies dans le fichier .skin sont copiées dans tous les contrôles de page. Un avantage de l'utilisation des feuilles de style en cascade est que les informations sont chargées et mises en cache une fois. (et peut être appliqué à plusieurs pages Web.) Les fichiers d'habillage peuvent provoquer une page dilatée car toutes les propriétés définies dans le fichier d'habillage doivent être fusionnées avec chaque contrôle affecté à chaque fois que la page est rendue.
En outre, le comportement par défaut des fichiers .skin Thème ASP.NET est de outrepasser les propriétés des contrôles affectés (cela peut être un comportement inattendu). Par exemple, si vous définissez la propriété Width
pour tous les ASP: étiquettes dans votre fichier .skin
, tous les ASP: Les étiquettes qui utilisent le fichier d'habillage auront leurs propriétés Width
définies à celle du fichier .skin
indépendamment du paramètre Width
individuel du contrôle. Pour éviter ce comportement, le StyleSheetTheme ASP.NET peut être utilisé pour autoriser les propriétés de niveau contrôle à remplacer les propriétés globales .skin.
Je ne comprends pas: dites-vous que tous les ASPX compilés obtiennent une section d'initialisation avec toutes les propriétés de la peau? Tout cela est fait du côté serveur, n'est-ce pas, et une fois? Alors pourquoi est-ce important? – Rup
C'est fait côté serveur. Cependant, cela est fait à chaque fois que la page est demandée; ce qui ajoute un peu de frais généraux. – NotMe
Merci @Chris Oui, les propriétés sont ajoutées côté serveur à chaque contrôle, ce qui augmente la taille de la page. –
Vous pouvez définir des propriétés telles que Largeur même en CSS. En dehors de pouvoir définir les propriétés que CSS ne peut pas, il y a certaines choses pour lesquelles vous avez besoin de fichier .skin.
Considérons un exemple où vous avez besoin que tous les contrôles asp: Label de votre page soient de couleur bleue. Un asp: Label est en fait du texte à l'intérieur d'un span, c'est à l'intérieur d'un div caché. C'est pourquoi nous sommes en mesure de définir des propriétés comme BackColor sur cet asp: Label et pourquoi le contrôle d'étiquette standard n'a pas de propriété 'BackColor'.
Donc, si vous essayez de définir la couleur de police à toutes les étiquettes ASP par CSS,
alors quelque chose comme
Label {
color: Blue;
}
ne fonctionnera pas. D'autre part, en utilisant un fichier de peau, vous pouvez écrire
<asp:Label runat="server" ForeColor="Blue"></asp:Label>
et ceci mettra toutes les étiquettes à la couleur bleue.
Si vous définissez la propriété 'AssociatedControlID' sur 'asp: Label', alors votre Label CSS fonctionnera parce que le' asp: Label' s'affichera en tant que 'label' au lieu de' span'. En outre, vous pouvez définir un habillage "label" qui applique une classe "label" à l'étendue rendue. http://jsfiddle.net/JamVw/ – Homer
Belle explication: Mais j'ai une erreur quand j'essaie d'utiliser .. l'erreur est .. Un SkinID a été spécifié mais la page n'est pas configurée pour utiliser un thème de page ou un thème de feuille de style. Ceci est acceptable si le thème ou le thème de la feuille de style sera défini par programme. Pour .css nous devons donner le lien de la page aspx .. il n'y a pas de type comme la peau quand j'essaye de donner le lien .. maintenant comment puis-je accéder au fichier .skin – selvaraj
J'ai mis à jour le poste pour expliquer comment utiliser le thème et la peau file –
Corrigez-moi si je me trompe mais vous devriez utiliser l'attribut 'SkinID =" MultiLineTextBox "' non seulement quand vous faites référence à l'habillage dans le bouton asp: mais aussi quand vous définissez l'habillage. (deuxième ligne de code). Bonne réponse quand même. – Tomas00