Question

Je dois afficher quelque chose comme ci-dessous.

Type A

  1. Type 1, élément 1
  2. Type 2, élément 2
  3. Type 3, élément A

Type B

  1. Type 1, élément 1
  2. Type 2, élément 2
  3. Type 3, élément 3

Type C

  1. Type 1, élément 1
  2. Type 2, élément 2
  3. Article 3 de type C

Toutes les données proviennent d'un jeu de données avec les colonnes 'Type' et 'ItemName'. Une solution simple consisterait maintenant à créer un répéteur pour chaque type et à filtrer le jeu de données correspondant à chaque type. Cependant, je voudrais juste utiliser un répéteur et le problème est que j’ai besoin d’un moyen de reconnaître quand chaque nouvelle section a un en-tête.

<div>[Header][Item]</div>

[Header] = <b>Type A</b><br />
[Item] = Type A Item 1

Ainsi, seul le premier élément de chaque type obtient un en-tête et tous les autres sont définis avec une chaîne vide.

Est-ce que quelqu'un connaît des astuces qui pourraient aider?

Était-ce utile?

La solution

Au lieu de créer un répéteur pour chaque type, pourquoi ne pas créer un répéteur imbriqué?

http://www.codeproject.com/KB/aspnet/AspNetNestedRepeaters.aspx

Essayez ça. Vous aurez toujours besoin de plus d'un répéteur, mais dans ce cas, ce ne serait que deux dont vous auriez besoin, et vous ne seriez pas obligé d'en créer un pour chaque type (comme vous le craigniez) mais plutôt un pour les types, et un imbriqué. en son sein pour les articles. Le lien ci-dessus devrait vous donner un bon point de départ pour approfondir vos recherches.

Autres conseils

Ok, je viens juste de trouver une solution. Bien que ce soit assez sale.

J'ai créé une variable globale pour suivre les en-têtes. La variable est une liste de chaînes. OnItemDatabind Je vérifie si l’en-tête est dans la liste globale.

Si l'élément n'existe pas, je l'ajoute à la liste et affiche l'en-tête. Sinon, l'en-tête est vide.

Jusqu'à présent, cela fonctionne, mais je ne sais pas ce que je ressens à ce sujet.

Modifier: Je me demande si un autre contrôle pourrait mieux fonctionner à ce niveau ...

En supposant qu'ils soient triés par type, il n'est pas nécessaire de conserver une liste complète: uniquement l'élément en cours.

Recherchez plus d'informations sur les rapports de contrôle / rupture.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top