---
title: "Container.dataitem i repeater"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/65878-container-dataitem-i-repeater"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "Dino"
published: "2003-01-23T11:40:26.000Z"
updated: "2003-01-23T12:22:57.000Z"
replies: 5
views: 238
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/65878-container-dataitem-i-repeater"
---

# Container.dataitem i repeater

## #1 — Dino, 2003-01-23T11:40Z

Har en repeater:

```
...
<itemTemplate>
   <tr>
      <td>
      <%# level(Container.dataitem(3)) %> 
      </td>
   </tr>
</itemTemplate>
<alternatingItemTemplate>
   <tr>
      <td>
      <%# level(Container.dataitem(3)) %> 
      </td>
   </tr>
</alternatingItemTemplate>
...
```

 
Skulle behöva att istället för trean så skulle det vara en variable som plusades på med 1. Hur gör jag?

Permalänk: https://www.webforum.nu/p/65878

## #2 — NETwork, 2003-01-23T11:49Z

Räkna upp dem innan du fyller din repeater istället, exempelvis om du har ett dataset gör du så här:

```
ds.Tables["tabell"].Columns.Add(new DataColumn("Counter", typeof(Int32)));
for (int i=0; i<ds.Tables["tabell"].Rows.Count; i++) {
  ds.Tables["tabell"].Rows[i]["Counter"] = i + 1;
}

<itemTemplate>
   <tr>
      <td>
      <%# level(DataBinder.Eval(Container.DataItem, "Counter")) %> 
      </td>
   </tr>
</itemTemplate>
```

Permalänk: https://www.webforum.nu/p/925361

## #3 — Dino, 2003-01-23T11:59Z

Hmm, tror jag förstår tanken i det men jag kör ut datan genom en datareader direkt in i repeatern så jag använder inte något dataset. Finns det något annat alternativ.

Permalänk: https://www.webforum.nu/p/925367

## #4 — PatrikB, 2003-01-23T12:11Z

i en datareader kan du oxå få fram datan genom att ange fältnamnet:

```

strName = dr("FieldForName")
```

då i din datareader så får du helt enkel skriva så här:

```
<alternatingItemTemplate>
   <tr>
      <td>
      <%# level(Container.dataitem, "FieldForName") %> 
      </td>
   </tr>
</alternatingItemTemplate>
```

Det är det som gör den "mindre" dynamisk ....

cya,
PatrikB

Permalänk: https://www.webforum.nu/p/925373

## #5 — NETwork, 2003-01-23T12:11Z

Hm, problemet är väl att det inte finns något bra sätt att komma ihåg värden från tidigare rader direkt i din repeater, du bör alltid göra den typen av logik i koden på något sätt. Kan du inte räkna upp värdet i funktionen "level" på nåt sätt, exempelvis genom att spara undan senaste värdet i en session och plussa på med 1, typ: 

```
level {
  session = session + 1;
  return session;
}
```

Någon annan kanske har en bättre lösning?

Permalänk: https://www.webforum.nu/p/925374

## #6 — Dino, 2003-01-23T12:22Z

PatrikB förslag går inte då fältet växlar från 2 upp till 8.
NETwork förslag skulle ju kunna funka. Får försöka modifiera det lite.

Får kolla över det hela och se om jag kan göra en bättre SQL fråga eller om jag skall ta en omväg och köra in det i ett dataset. Tack i alla fall. :)

Permalänk: https://www.webforum.nu/p/925386

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/65878-container-dataitem-i-repeater
