---
title: "Visa att man är på en sida"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/127672-visa-att-man-är-på-en-sida/page2"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "echoSwe"
published: "2005-05-04T17:04:46.000Z"
updated: "2005-05-22T20:26:58.000Z"
replies: 21
views: 690
page: 2
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/127672-visa-att-man-är-på-en-sida"
---

# Visa att man är på en sida

_Sida 2 av 2._

## #21 — echoSwe, 2005-05-22T15:16Z

Lösning som jag stannade vid för tillfället var den som jag skrev om i C# faktiskt... (den som finns tidigare upp i tråden) 

En sak bara - detta förutsätter ju faktiskt att man alltid bifogar ett id med alla länkar. Kan man xml-parsa xhtml dokumentet och leta upp alla länkar innan det skickas ut och automatiskt lägga dit id eller nåt?

> **ahlen skrev:**
>
> Hmm, ge administratörs rättigheter till VB.net koden?! Eller vad menar du? ;-)

Nej, jag menar - hur skriver man om den här koden:

```
pHolder.Controls.Add ul
foreach (myDataRow in myDataSet.Tables["meny"].Rows) 
//för att använda datarows måste man väl använda 
//en adapter till att få datan? (en OleDbDataReader funkar väl inte)
{
pHolder.Controls.Add li
pHolder.Controls.Add HyperLink h;
h.Text = MyDataRow["text"];
h.Navigateurl = MyDataRow["address"];
    if (Request.Querystring["ID"] = MyDataRow["linkID"]
{
h.Attributes.Add("class","active");

}
}
```

 så att den fungerar?

renholm: jo, kanske det - du har inte möjligtvis något exempel?

//Henke

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

## #22 — renholm, 2005-05-22T20:26Z

Ett exempel:

```
protected override void Render(HtmlTextWriter writer)
		{
			WriteNodes(NodeContext.CurrentSite.SelectNodes(path), writer);
		}

		private void WriteNodes(TreeNodeCollection nodes, HtmlTextWriter writer)
		{
			if (nodes.Count > 0)
			{
				foreach(string key in Style.Keys)
					writer.AddStyleAttribute(key, Style[key]);
				if (this.CssClass != null)
					writer.AddAttribute(HtmlTextWriterAttribute.Class, this.CssClass);

				writer.RenderBeginTag("ul");
				foreach(Altais.Framework.Nodes.TreeNode node in nodes)
				{				
					if (node.Visible)
					{
						bool selected = false;
						if (selectedpath == null)
						{
							if (node.ID == NodeContext.CurrentNode.ID)
								selected = true;
						}
						else
						{
							if (node.ID == NodeContext.CurrentSite.Select(selectedpath).ID)
								selected = true;
						}

						if (selected && this.selecteditemcssclass != null)
							writer.AddAttribute(HtmlTextWriterAttribute.Class, this.selecteditemcssclass);
						else if (this.itemcssclass != null)
							writer.AddAttribute(HtmlTextWriterAttribute.Class, this.itemcssclass);

						writer.RenderBeginTag("li");

						NavigationItemTemplate item = new NavigationItemTemplate(node, selected);
						itemtemplate.InstantiateIn(item);
						item.RenderControl(writer);
						
						writer.RenderEndTag();
						writer.WriteLine();
				
						if (mode == Mode.Tree)
							WriteNodes(node.Nodes, writer);
					}
				}
				writer.RenderEndTag();
			}
		}
```

I detta exempel används ett bakomliggande ramverk för sidhantering som kontrollen sedan skriver ut beroende på vilken path som är angiven. Används enligt nedan:

```
<cc1:Navigation id="nav2" Mode="Flat" CssClass="nav_1level" SelectedItemCssClass="selected" runat="server">
	<ItemTemplate>
		<a href='<%# Page.ResolveUrl(Container.NavigationUrl) %>'><%# Container.Node.Name %></a>
	</ItemTemplate>
</cc1:Navigation>
```

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/127672-visa-att-man-är-på-en-sida/page2  
Föregående sida: https://www.webforum.nu/amne/dotnet/127672-visa-att-man-är-på-en-sida.md
