---
title: "Hittar inte kontroller i Repeater"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/85908-hittar-inte-kontroller-i-repeater"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "edebro"
published: "2003-09-12T22:39:43.000Z"
updated: "2003-09-13T19:45:31.000Z"
replies: 3
views: 334
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/85908-hittar-inte-kontroller-i-repeater"
---

# Hittar inte kontroller i Repeater

## #1 — edebro, 2003-09-12T22:39Z

Jag har följande kod, som fungerar fint;

```
<%@ Page Language="C#" %>
<%@ import namespace="System.Data" %>
<%@ import namespace="System.Data.OleDb" %>

<script language="C#" runat="server">
public void Page_Load(Object src,EventArgs e) {
	OleDbConnection objConn=new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source= C:\Inetpub\work\ufk\wwwroot\test\paging\repeaterpaging.mdb");
	OleDbDataAdapter objCommand=new OleDbDataAdapter("select * from Products",objConn);
	DataSet ds=new DataSet();
	objCommand.Fill(ds);

	PagedDataSource objPds = new PagedDataSource();
	objPds.DataSource = ds.Tables[0].DefaultView;
	objPds.AllowPaging = true;
	objPds.PageSize = 5;
	int CurPage;
	if (Request.QueryString["Page"] != null)
		CurPage=Convert.ToInt32(Request.QueryString["Page"]);
	else
		CurPage=1;

	objPds.CurrentPageIndex = CurPage-1; 
	lblCurrentPage.Text = "Page " + CurPage.ToString() + " of " + objPds.PageCount;

	if (!objPds.IsFirstPage)
		lnkPrev.NavigateUrl=Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage-1);

	if (!objPds.IsLastPage)
		lnkNext.NavigateUrl=Request.CurrentExecutionFilePath+ "?Page=" + Convert.ToString(CurPage+1);

	Repeater1.DataSource=objPds;
	Repeater1.DataBind();
}
</script>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>

<form name="form1" method="POST" runat="server">
	<table width="100%" border="0">
	<tr><td>
		<asp:Label id="lblCurrentPage" runat="server" />
	</td></tr>
	<tr><td>
		<asp:HyperLink id="lnkPrev" runat="server"><< Prev</asp:HyperLink>
		<asp:HyperLink id="lnkNext" runat="server">Next >></asp:HyperLink>
	</td></tr>
	</table>
	
	<asp:Repeater id="Repeater1" runat="server">
		<itemtemplate>
			<table width="100%" border="0">
			<tr><td><%# DataBinder.Eval(Container.DataItem, "Product") %></td></tr>
			<tr><td>&nbsp;</td></tr>
			</table>
		</itemtemplate>
	</asp:repeater>
</form>
</body>
</html>
```

Grejen är bara att jag måste ha kontrollerna lnkPrev, lnkNext och lblCurrentPage inne i repeatern, nämligen i \<footertemplate\>.
Det är nu problem uppstår. Den ger mig felmeddelandet;

```
Kompilatorfelmeddelande: CS0246: Det gick inte att hitta typ- eller namnområdesnamnet lblCurrentPage (saknas ett using-direktiv eller en sammansättningsreferens?)
```

På raden;

```
lblCurrentPage.Text = "Sida " + CurPage.ToString() + " av " + objPds.PageCount();
```

Den hittar altså inte kontrollerna om jag lägger dom i Repeatern.
Hur ska man lösa detta?

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

## #2 — Broskan, 2003-09-13T06:10Z

Navigering

Tjena.
Bara en fundering. Varför måste du ha den i repeatern?
Kan du inte lägga den efter repeatern inom formtaggen så ser det väl likadant ut.

La ut en test:
<http://www.broskan.se/edebro>

```
<style>
.tbl_nav{font-size:12px; font-weight:bold; font-family:verdana; color:white; background-color:#000088;}
.tbl_contents{border:1px #000088 solid; font-size:12px; font-weight:bold; font-family:verdana; color:#000088; background-color:#eeeeee;}
</style>
</head>
<body>

<form name="form1" method="POST" runat="server">
	
	
	<asp:Repeater id="Repeater1" runat="server">
		<itemtemplate>
			<table width="150" cellpadding="4" cellspacing="0" border="0" class="tbl_contents">
			<tr><td><%# DataBinder.Eval(Container.DataItem, "tippare") %></td></tr>
			<tr><td> </td></tr>
			</table>
		</itemtemplate>
	</asp:repeater>
	<table width="150" cellpadding="2" cellspacing="0" border="0" class="tbl_nav">
	<tr><td>
		<asp:Label id="lblCurrentPage" runat="server" />
	</td></tr>
	<tr><td>
		<asp:HyperLink id="lnkPrev" style="text-decoration:none; color:white;" runat="server"><< Prev</asp:HyperLink>
		<asp:HyperLink id="lnkNext" style="text-decoration:none; color:white;" runat="server">Next >></asp:HyperLink>
	</td></tr>
	</table>
</form>
</body>
</html>
```

//Broskan

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

## #3 — edebro, 2003-09-13T17:51Z

Jadu, det var en mycket bra fråga. Det är ju helt sant att jag egentligen inte behöver ha den i repeatern. Men jag skulle endå vilja veta hur man kommer åt dessa kontroller för framtida bruk!

Någon som vet?

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

## #4 — icaaq, 2003-09-13T19:45Z

Kanske nått sånt här

```
[red]
<asp:Repeater id="Repeater1" runat="server" onitemdatabound='repBound'>
	<headertemplate>
		<asp:label runat='server' id='lblCurrentPage'/>
	</headertemplate>
		<itemtemplate>
			<table width="100%" border="0">
			<tr><td><%# DataBinder.Eval(Container.DataItem, "Product") %></td></tr>
			<tr><td> </td></tr>
			</table>
		</itemtemplate>
	</asp:repeater>
[/red]
```

och CB

```
[red]
		public void repBound(Object Sender, RepeaterItemEventArgs e)
		{
			switch(e.Item.ItemType)
			{
				case ListItemType.Item:
				case ListItemType.AlternatingItem:
					// Gör dina saker här om det är Item eller AlternatingItem
					break;
				case ListItemType.Header:
					Control _ctrl = e.Item.FindControl("lblCurrentPage");
					if(_ctrl != null)
					{
						Label CPage = (Label)_ctrl;
						CPage.Text = "Sida " + CurPage.ToString() + " av " + objPds.PageCount();
					}
					break;
			}
		}[/red]
```

Det är ju lite att leka m iaf ;)

Mvh icaaq

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/85908-hittar-inte-kontroller-i-repeater
