08. december 2003 - 14:38Der er
12 kommentarer og 2 løsninger
Brug af Repeater
Jeg har to instanser af følgende klasse, som jeg gerne vil vise på min webside ved hjælp af en Repeater. Jeg har fulgt en guide fra Microsoft og har prøvet med en anden guide jeg fandt et sted. Lige meget hjælper det, jeg får vist Header og Footer i repeateren, men ingen Items vises.
public class Booking { private DateTime date; private int track;
public Booking(DateTime date, int track) { this.date = date; this.track = track; }
public DateTime Date { get { return date; } }
public int Track { get { return track; } } }
I min oversigt.aspx hvor jeg vil bruge selve repeateren, har jeg følgende kode:
I øvrigt med følgende i toppen af oversigt.aspx: <%@ Page language="c#" Codebehind="oversigt.aspx.cs" AutoEventWireup="True" Inherits="Squash.oversigt" %>
Der ER to instanser af Booking i 'bookings', jeg har tjekket.
Som sagt får jeg vist Header og Footer, men får ikke vist nogle Items, som om der slet ikke er nogen. Hvad gør jeg galt? Jeg har aldrig prøvet at bruge en Repeater før, så det kan godt være noget ganske banalt jeg gør galt.
Prøv at erstatte DataBinder.Eval(Container.DataItem, "Track") med Container.DataItem.Track Og DataBinder.Eval(Container.DataItem, "Date") med Container.DataItem.Date
problemet ligger i at du bruger en ArrayList som datasource... din repeater vil ikke kunne se objecterne i den som Booking-objecter. lav istedet en Strong-typed collection som du kan gemme dine Booking-objecter i. Det er meget nemt, da du kan arve fra System.Collections.CollectionBase og nøjes med at override Add og Get metoderne
Det virker ikke. Jeg binder nu følgende til min Repeater:
public class BookingCollection : System.Collections.CollectionBase { public Booking this[int index] { get { return((Booking)List[index]); } set { List[index] = value; } }
public int Add(Booking value) { return(List.Add(value)); } }
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.