54 votes

ASP.NET répéteur suppléant ligne mettant en évidence sans complet soufflé <alternatingitemtemplate />

Je suis en train de réaliser simplement l'ajout d'une classe css à un div sur d'autres lignes dans mon <itemtemplate/> sans aller à la surcharge d', y compris une pleine soufflé <alternatingitemtemplate/> qui va me forcer à garder beaucoup de balisage dans la synchronisation dans l'avenir.

J'ai vu une solution comme http://blog.net-tutorials.com/2009/04/02/how-to-alternate-row-color-with-the-aspnet-repeater-control/ qui je suis tenté de l'utiliser mais ce n'est toujours pas "sentir" le droit de me.

A quelqu'un d'autre a une plus maintenable et simple de la solution? Idéalement, je voudrais être en mesure de faire quelque chose comme:

<asp:repeater id="repeaterOptions" runat="server">
		<headertemplate>
			<div class="divtable">
				<h2>Other Options</h2>
		</headertemplate>
		<itemtemplate>
				<div class="item <%# IsAlternatingRow ? "dark" : "light" %>">

Mais je ne peux pas comprendre comment mettre en oeuvre IsAlternatingRow - même avec les méthodes d'extension.

128voto

Richard Everett Points 18318

Il n'est pas nécessaire de gérer votre propre variable (un compteur s'incrémentant ou un booléen); vous pouvez voir si les haut- ItemIndex propriété est divisible par deux, et l'utiliser pour définir une classe css:

class="<%# Container.ItemIndex % 2 == 0 ? "" : "alternate" %>"

Cela a l'avantage d'être entièrement basé dans le code de l'INTERFACE utilisateur (ascx ou fichier aspx), et ne pas compter sur le JavaScript.

6voto

Seven Points 21

Cela m'a aidé

class='<%# Container.ItemIndex % 2 == 0 ? "" : "alternate" %>'

Réponse précédente a permis une "Balise de Serveur n'est pas bien formé" erreur.

4voto

Lachlan Roche Points 16456

Appliquer les classes avec JQuery.

$('.divtable > div:odd').addClass('dark');
$('.divtable > div:even').addClass('light');

2voto

Keith Bloom Points 1564

Vous pouvez utiliser jQuery à la place. Cette réponse à une question précédente peut aider: http://stackoverflow.com/questions/287489/jquery-zebra-selector

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X