Frage

Ich brauche etwas wie unten angezeigt werden soll.

Typ A

  1. Typ A Punkt 1
  2. Typ A Punkt 2
  3. Typ A Punkt 3

Typ B

  1. Typ B Artikel 1
  2. Typ B Artikel 2
  3. Typ B Artikel 3

Typ C

  1. Typ C Punkt 1
  2. Typ C Punkt 2
  3. Typ C Punkt 3

Alle Daten stammen aus einem Datensatz mit Spalten ‚Typ‘ und ‚ItemName‘. Jetzt eine einfache Lösung wäre, einen Repeater für jeden ‚Typ‘ zu erstellen und filtern, um die von jedem ‚Typ‘ Datensatz. Ich möchte jedoch nur ein Repeater und das Problem verwenden, mit, dass ich in gewisser Weise ist zu erkennen, wenn jeder neue Abschnitt einen Kopf hat.

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

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

So nur das erste Element jeder Art bekommt einen Kopf Artikel und alle anderen werden auf einen leeren String gesetzt.

Kennt jemand irgendwelche Tricks, die helfen könnte?

War es hilfreich?

Lösung

Statt einen Repeater für jede Art zu schaffen, wie etwa eine verschachtelte Repeater?

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

Versuchen Sie das mal aus. Sie werden immer noch mehr als ein Repeater benötigen, aber in diesem Fall würde es nur zwei, die Sie brauchen, und Sie würden nicht eine für jede Art machen müssen (wie Sie befürchteten), sondern eine für Typen und eine verschachtelte in ihm nach Artikeln. Der Link oben sollten Sie einen guten Ausgangspunkt, weiter zu untersuchen.

Andere Tipps

Ok, ich kam gerade mit einer Lösung auf. Obwohl es ziemlich schmutzig.

Ich habe eine globale Variable die Header zu verfolgen. Die Variable ist eine Liste von Strings. OnItemDatabind ich überprüfen, ob der Header-Eintrag in der globalen Liste ist.

Wenn das Element nicht existiert, füge ich es in die Liste und die Kopfzeile angezeigt werden soll. Ansonsten ist der Kopfpunkt leer.

Bisher dies funktioniert, aber ich weiß nicht, wie ich darüber denke.

Edit: Ich frage mich, ob eine andere Steuerung besser kann dies funktionieren ...

Unter der Annahme, sie nach Typ sortiert sind, brauchen Sie nicht eine ganze Liste zu halten. Nur das aktuelle Element

Geben Sie für weitere Informationen über die Kontrolle / Pause Berichterstattung.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top