---
title: "Repeater eller liknande..."
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/91933-repeater-eller-liknande"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "Eminem"
published: "2003-12-05T08:43:33.000Z"
updated: "2003-12-11T10:51:39.000Z"
replies: 24
views: 605
page: 1
pages: 2
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/91933-repeater-eller-liknande"
---

# Repeater eller liknande...

_Sida 1 av 2._

## #1 — Eminem, 2003-12-05T08:43Z

Tjena mors!

Är en nybörjare på .NET, men har jobbat med ASP innan. Har följande kod som jag skall ha i ett forum.

```
<!-- Post 1 -->
			<tr>
				<td bgcolor="#9da87d">
					<table cellspacing="0" cellpadding="1" width="600" border="0">
						<tr>
							<td><img src="/data/img/1px.gif" width="1" height="1" border="0" alt=""></td>
						</tr>
						<tr>
							<td width="5"><img src="/data/img/1px.gif" width="5" height="1" border="0" alt=""></td>
							<!-- Namn -->
							<td class="white10pxbold">[b]Namn[/b]</td>
							<!-- /Namn -->
							
							<!-- Knappar -->
							<td rowspan="3" valign="middle" align="right"><img src="/data/img/user.gif"><img src="/data/img/1px.gif" width="10" height="1"><img src="/data/img/reply.gif"><img src="/data/img/1px.gif" width="7" height="1"></td>
							<!-- /Knappar -->
						</tr>
						<tr>
							<td width="5"><img src="/data/img/1px.gif" width="5" height="1" border="0" alt=""></td>
							<!-- Datum -->
							<td class="black10px">[b]Datum[/b]</td>
							<!-- /Datum -->
						</tr>
						<tr>
							<td width="5"><img src="/data/img/1px.gif" width="5" height="1" border="0" alt=""></td>
							<!-- Tråd -->
							<td class="white10pxbold"><img src="/data/img/flag.gif" width="5" height="10" border="0" alt="Nytt inlägg" align="middle">&nbsp;[b]Ämne[/b]</td>
							<!-- /Tråd -->
						</tr>
						<tr>
							<td><img src="/data/img/1px.gif" width="1" height="1" border="0" alt=""></td>
						</tr>
					</table>
				</td>
			</tr>
			<tr>
				<tr>
							<td bgcolor="#c5d0a6" colspan="3" class="black10px">
								<blockquote><br>
								[b]Meddelande[/b]
								<br><br>
								-------------------<br>
								[b]Signatur[/b]
								</blockquote>
							</td>
						</tr>
			</tr>
			<tr>
				<td><img src="/data/img/1px.gif" width="1" height="10" border="0" alt=""></td>
			</tr>
		<!-- /Post 1 -->
```

Har sedan till att börja med en accessdatabas med informationen i. Det som är **fet** stil är ställena som informationen skall läggas till i.

Vilket är det bästa sättet att loopa ut informationen. I ASP så körde jag alltid *Response.Write* i loopen, men i .NET är väl inte det det bästa.

Lite tips vore tacksamt :)
Kanske skall tillägga att jag kör i C#

 :birp

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

## #2 — NETwork, 2003-12-05T09:31Z

Response.Write ska du mycket riktigt inte använda. Precis som du skriver i rubriken, använd en repeater!

<http://www.dotnetjunkies.com/QuickStart/aspplus/default.aspx?url=/quickstart/aspplus/samples/webforms/ctrlref/webctrl/repeater/doc_repeater.aspx>

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

## #3 — Eminem, 2003-12-05T09:37Z

Okej... Är som sagt inte någon klippa på detta än.

Har denna kod i en .cs fil

```
string conn;
string mySQL;

conn = "Provider=Microsoft.Jet.OleDB.4.0;" + "Data Source = Server.MapPath(/data/db/forum.mdb);";
OleDbConnection myConn = new OleDbConnection(conn);
myConn.Open();

mySQL = "SELECT * FROM threads";
OleDbCommand MyOleDbCommand = new OleDbCommand(mySQL,myConn);
```

Hur gör jag för att få informationen i den HTML-kod jag presenterade ovan?

En repeater kan jag göra, men vet inte hur jag skall skriva själva koden i .cs-filen så att jag kan hämta värdena i min .aspx-fil.

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

## #4 — NETwork, 2003-12-05T10:03Z

Du måste fylla din repeater med en collection av något slag (exempelvis en arraylist eller en datatable) och sedan binda datan till repeatern.

```
myRep.DataSource = "din datakälla";
myRep.Databind();
```

Sedan kan du loopa ut dina data i din repeater:

```
<asp:Repeater id=myRep runat="server">
  <ItemTemplate>
    <%# DataBinder.Eval(Container.DataItem, "Namn") %>,
    <%# DataBinder.Eval(Container.DataItem, "Datum") %>,
    <%# DataBinder.Eval(Container.DataItem, "Ämne") %>
    <br/>
  </ItemTemplate>
</asp:Repeater>
```

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

## #5 — m_soderlund, 2003-12-05T13:42Z

<http://www.dileno.hel.nu/aspnet/#OleDbDataReader>, dock enbart att göra om till C#. :D
Sen använder du NETworks kod, Eminem.

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

## #6 — Eminem, 2003-12-10T09:17Z

Oki, har varit sjuk ett tag...

```
private void Page_Load(object sender, System.EventArgs e)
		{
			string conn;
			string mySQL;

			conn = "Provider=Microsoft.Jet.OleDB.4.0;" + "Data Source = " + Server.MapPath("/data/db/forum.mdb");
			OleDbConnection myConn = new OleDbConnection(conn);
			myConn.Open();

			mySQL = "SELECT * FROM threads";
			OleDbCommand myCmd = new OleDbCommand(mySQL,myConn);
			
			Result = myCmd.ExecuteReader();
			myRep.DataSource = Result;
			myRep.DataBind();
            			
		}
```

 

Och i test.aspx

```
<asp:Repeater id=myRep runat="server">
			<ItemTemplate>
				<%# DataBinder.Eval(Container.DataItem, "threadData") %>
			</ItemTemplate>
			</asp:Repeater>
```

 

Men den skriver inte ut någonting... Blir galen  :birp

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

## #7 — NETwork, 2003-12-10T11:24Z

Om du försöker använda en datareader (?) så   **läser** en datareader bara data rad för rad, men det är ingen collection som du direkt kan använda för att fylla din kontroll med data... ska du använda en datareader måste du lagra de data du hämtar med den i exempelvis en array som du i sin tur använder för att fylla din kontroll!

Om jag vore dig skulle jag fylla dina data i en datatable istället. 

```
DataTable dt = new DataTable();			
myCmd.Fill(dt);

myRep.DataSource = dt.DefaultView;
myRep.DataBind();
```

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

## #8 — Eminem, 2003-12-10T12:10Z

Är som sagt inte så haj på detta...
Den klagar på raden

```
myCmd.Fill(dt);
```

*C:\\Inetpub\\wwwroot\\forum\\test.aspx.cs(37): 'System.Data.OleDb.OleDbCommand' does not contain a definition for 'Fill'*

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

## #9 — Dino, 2003-12-10T12:28Z

Om du skall göra enligt NETworks tillvägagångssätt.

```
private void Page_Load(object sender, System.EventArgs e)
{
   if(!IsPostBack)
   {
      BindData();
   }
}

public void BindData()
{
   myRep.DataSource = GetData();
   myRep.DataBind();
}

public DataTable GetData() 
{
   DataSet ds = new DataSet();
   string connS = "Provider=Microsoft.Jet.OleDB.4.0;" + "Data Source = " + Server.MapPath("/data/db/forum.mdb");
   string mySQL = "SELECT * FROM threads";
   OleDbConnection conn = new OleDbConnection(connS);
   OleDbDataAdapter adapter = new OleDbDataAdapter();
   adapter.SelectCommand = new OleDbCommand(mySQL, conn);
   adapter.Fill(ds);
   return ds.Tables[0];
}
```

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

## #10 — NETwork, 2003-12-10T12:39Z

Ursäkta mig, det ska naturligtvis vara en OleDbDataAdapter som du fyller din datatable med, se Dinos kod... Men i ditt fall använd en **datatable**, inte ett dataset, så sparar du på systemresurserna... :)

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

## #11 — Eminem, 2003-12-10T12:58Z

Tack för all hjälp men den returnerar fortfarande ingenting.
Får inga felmeddelanden men sidan är tom. Är det fel på min reapeater?

```
<asp:Repeater id="myRep" runat="server">
 <ItemTemplate>
  <p><%# DataBinder.Eval(Container.DataItem, "threadData") %></p>
 </ItemTemplate>
</asp:Repeater>
```

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

## #12 — NETwork, 2003-12-10T13:06Z

Nej, din repeater ser riktig ut. Är du säker på att du hämtar något i databasen? Finns kolumnen "threadData"? Ett enkelt sätt att se allt som finns i din collection är att fylla en datagrid med den:

```
<asp:datagrid id="myDG" runat="server"></asp:datagrid>

myDG.DataSource = dt;
myDG.DataBind();
```

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

## #13 — Eminem, 2003-12-10T13:10Z

> **NETwork skrev:**
>
> Nej, din repeater ser riktig ut. Är du säker på att du hämtar något i databasen? Finns kolumnen "threadData"? Ett enkelt sätt att se allt som finns i din collection är att fylla en datagrid med den:
>
>
> ```
> <asp:datagrid id="myDG" runat="server"></asp:datagrid>
> 
> myDG.DataSource = dt;
> myDG.DataBind();
> ```

Kolumnen threadData finns och innehåller fyra st poster. Och den sista koden kan inte en nybörjare som jag fatta vart jag skall lägga in i den kod som dino postade  :l

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

## #14 — NETwork, 2003-12-10T13:19Z

Använder du Dinos kod eller den kod du hade från början? Istället för att fylla din repeater så fyller du din datagrid på exakt samma sätt, lägg till eller byt bara ut myRep.DataSource mot myDG.DataSource (eller vad din dagagrid nu har för id) och databind din datagrid! :) En datagrid har fördelen att den automatiskt skriver ut alla data den fylls med så länge du inte anger något annat.

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

## #15 — Eminem, 2003-12-10T13:30Z

Får det bara inte att fungera...

Screen ur access:

Bilagor:

- [access.jpg](https://www.webforum.nu/a/2405.jpg)

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

## #16 — Eminem, 2003-12-10T13:32Z

ASPX-sidan

Bilagor:

- [test.aspx.txt](https://www.webforum.nu/a/2406.txt)

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

## #17 — Eminem, 2003-12-10T13:32Z

cs

Bilagor:

- [test.aspx.cs.txt](https://www.webforum.nu/a/2407.txt)

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

## #18 — NETwork, 2003-12-10T13:42Z

I koden har du funktionen "public **DataTable** GetData()" men du returnerar ett dataset...

```
DataTable dt = new DataTable();
...
adapter.Fill(dt);
return dt.DefaultView;
```

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

## #19 — Eminem, 2003-12-10T13:46Z

Kanske är jag som gör fel men ändrade det du skrev och fick följande:

```
C:\Inetpub\wwwroot\forum\test.aspx.cs(55): Cannot implicitly convert type 'System.Data.DataView' to 'System.Data.DataTable'
```

På raden:

```
return dt.DefaultView;
```

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

## #20 — NETwork, 2003-12-10T13:48Z

Ta bort defaultview...

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/91933-repeater-eller-liknande  
Nästa sida: https://www.webforum.nu/amne/dotnet/91933-repeater-eller-liknande/page2.md
