Comment puis-je obtenir suppléant style, en <ItemTemplate> (.NET)?
Je suis en utilisant EPiServer pour ce site. Contrairement à asp:DataList
, EPiServer:PAgeList n'a pas AlternatingItemTemplate
.
J'ai donc besoin de créer un compteur et d'augmenter ce compteur dans mon <ItemTemplate>
, et ensuite utiliser le module de retour whuch de style css à ajouter à l'article /page.
Module "code" - fromcode derrière:
return index % 2 == 0 ? "styleA" : "styleB";
Mais je ne suis pas plus marins à l'annonce d'un compteur et l'augmentation de cette dans le <ItemTemplate>
.
Des suggestions beaucoup apprécié!
Mise à JOUR
Voici mon EPiServer Page la Liste de contrôleur:
<EPiServer:PageList runat="server" id="pageList" SortDirection="Ascending" Count="4" OnDataBinding="pageList_OnDataBinding">
<HeaderTemplate>
<ul id="articleList1">
</HeaderTemplate>
<ItemTemplate>
<li>
<h2><a href="<%# Eval("LinkURL") %>" title="<%# Eval("PageName") %>"><EPiServer:Property id="Property1" PropertyName="PageName" runat="server" /></a></h2>
<div class="articleImage">
<%# ArticleImage(Container.CurrentPage)%>
</div>
<div class="introText">
<%# IntroText(Container.CurrentPage)%>
</div>
<div class="readMore floatRight"><a href="<%# Eval("LinkURL") %>" title="<%# Eval("PageName") %>">Les mer</a></div>
</li>
</ItemTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
</EPiServer:PageList>
RÉPONSE
J'ai décidé que l'utilisation de jQuery a été BEAUCOUP plus simple que de piratage .NET.
Ce n'est pas ma solution préférée, mais il fonctionne. Le code que j'utilise est: est-ce
if (jQuery("#articleList1").length > 0) {
jQuery('li:odd').addClass("odd");
}
OriginalL'auteur Steven | 2009-12-16
Vous devez vous connecter pour publier un commentaire.
Pour un répéteur je fais ceci:-
MODIFIER pour un élément lié aux données d'événement de garder une trace de la ligne compteur...
Modifier ici vous allez... OUPS nécessaires pour être un HtmlTableRow!!
vous aurez aussi besoin de ce
C'est vraiment douce et simple. N'est jamais venu à moi.
c'est assez cool, évite d'avoir un modèle de l'alternance
ressemble onitem lié aux données ou jquery
Merci. Soins pour me donner une poussée dans la bonne direction, de trouver la contrôle? Je ne suis pas .NET savvy 🙁
OriginalL'auteur Rippo
Si vous êtes à la recherche pour certains le style visuel pour les autres lignes, Vous pouvez trouver plus de succès dans l'utilisation de Javascript et de jQuery pour manipuler les styles lors de l'exécution sur le client. Dans certains cas, vous pouvez utiliser pur CSS pour obtenir le résultat que vous voulez (mais cela peut entraîner dans les implémentations qui ne cherchent pas la même dans les différents navigateurs).
Si vous avez réellement besoin d'afficher différentes informations pour les lignes alternées, vous devrez peut-être ajouter une propriété à la source de données sont obligatoires pour qui expose les informations. Sinon, certains contrôles à l'appui d'une
ItemDataBound
événement que vous pouvez vous abonner sur le serveur et de l'utiliser pour modifier votre sortie.EDIT:
Si vous choisissez de vous inscrire à l'événement ItemDatabound (en supposant que le contrôle a effectivement cette fonction), vous pouvez calculer une incrémentation de la valeur et de l'affecter à l'élément de données vous sont contraignantes. Vous pouvez ensuite utiliser cette collaboration avec l'arithmétique modulaire:
(count % 2)
d'appliquer les différents styles de pair/impair de lignes.Une autre alternative est de pirater les choses en utilisant le balisage des expansions de ASP.NET pour générer un nombre d'incrémentation juste dans le balisage. Voici un exemple avec un Répéteur:
OnItemDataBound
. Mais comment pourrais-je aller aboutt il contre?Je souhaite qu'il en était que plus simple: ` CS0103: Le nom de "comptoir" n'existe pas dans le contexte actuel"
OriginalL'auteur LBushkin
Cela peut être fait avec du pur CSS en supposant que le navigateur pris en charge est IE9+.
OriginalL'auteur Keith Gagne
Unfortunally EpiServer "cache" les ItemIndex de l'instance de Conteneur, mais un travail autour est de créer votre propre "global" contre:
Ajouter une propriété à votre code derrière:
Et ensuite dans votre fichier aspx:
OriginalL'auteur bang
J'ai mis en place comme ci-dessous:
Ce qui m'a aidé était Richard Everett réponse.
La réponse en détail:
Cela a sauvé ma journée!
OriginalL'auteur Shubh
Lorsque je rencontre ce genre de problèmes avec des commandes de serveur j'ai l'habitude de simplement les css à la main
OriginalL'auteur Pierreten
La EPiServer PageList de contrôle fonctionne également comme une source de données, donc il n'y a aucune raison pourquoi ne pas utiliser votre favori ASP.NET basé sur un modèle de contrôles avec l'alternance des éléments à rendre avec la, et il suffit de régler la DataSourceId à l'ID de la liste de pages.
OriginalL'auteur Allan Thraen
Cela a fonctionné pour moi. (Crédit @Rippo)
J'ai juste utilisé le
bgcolor
de la table:OriginalL'auteur Santhosh Raviendranath