Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Meny med Sitemap?

Postades av 2006-12-15 17:52:00 - Magnus Hallberg, i forum asp.net generellt, Tråden har 12 Kommentarer och lästs av 775 personer

Har kollat runt om jag kan lösa följande problem men kan inte hitta nåt om det. Det jag vill göra är följande:

Ha en huvudmeny denna ska inte visa några underkategorier, sen när jag kommer in på en sida som har underkategorier ska dessa visas i en annan meny. Huvudmenyn ska hela tiden se likadan ut, den ska även ligga skiljd från undermenyn. Jag vill kunna göra detta med hjälp av Sitemap. Är det möjligt i så fall hur gör jag det?


Svara

Sv: Meny med Sitemap?

Postades av 2006-12-15 20:18:33 - Mikael Åhlén

Hej,

Du kan göra väldigt mycket med SiteMap(Node), men det kan vara krångligt i början.

Jag har löst det på det sättet först binder jag RootNode.ChildNodes till en repeater och i ItemDatabound så kollar jag om node == CurrentNode eller om node är "IsDescendantOf()" som kollar om noden är i samma hierarki. Om det stämmer, så binder man node.ChildNodes till sub-menyn.

Hoppas att du förstår hur jag menar, kan visa kodexempel om du även vill se det.

/m


Svara

Sv:Meny med Sitemap?

Postades av 2006-12-15 21:34:00 - Magnus Hallberg

Vore tacksam för exempelkod :)


Svara

Sv: Meny med Sitemap?

Postades av 2006-12-16 04:04:08 - Magnus Hallberg

Jag har kommit en bit på vägen, min kod ser ut så här:
<code>
string myString = "";
string myCheck = SiteMap.CurrentNode.ToString();
lblSubMenu.Text = "<span class='boldText'>" + myCheck.ToString() + "</span><p></p>";

// What nodes are children of the CurrentNode?
if (SiteMap.CurrentNode.HasChildNodes)
{
IEnumerator childNodesEnumerator = SiteMap.CurrentNode.ChildNodes.GetEnumerator();
myString = "<ul class='regText'>";
while (childNodesEnumerator.MoveNext())
{
// Prints the Title of each node.
myString += "<li>" + (childNodesEnumerator.Current.ToString()) + "</li>";
}

myString += "</ul>";
lblSubMenu.Text += myString.ToString() + "<br />";
}
</code>
Hur få jag ut länken? Den ligger ju i url i sitemap. Kan man på nåt sätt lägga detta i en klass så man slipper skriva koden flera gånger? Jag ahr inte fått det att fungera. Skulle man kanske kunna få den bunden till en treeview?


Svara

Sv:Meny med Sitemap?

Postades av 2006-12-18 23:27:07 - Magnus Hallberg

Jag behöver verkligen hjälp med detta. Jag ahr alltså den här koden:
<code>
if (SiteMap.CurrentNode.HasChildNodes)
{
if (SiteMap.CurrentNode.HasChildNodes)
{
IEnumerator childNodesEnumerator = SiteMap.CurrentNode.ChildNodes.GetEnumerator();
while (childNodesEnumerator.MoveNext())
{
// Prints the Title of each node.
Response.Write(childNodesEnumerator.Current.ToString() + "<br />");
}
}
Response.Write("<hr />");

}
else
lblSubmenu.Text = "Det finns inga underkategorier.";
</code>
Med denna kod har jag fått ut titeln på länkarna, men hur gör jag för att få ut urlen så jag kan göra länkar till dom?


Svara

Sv: Meny med Sitemap?

Postades av 2006-12-19 09:12:16 - Mikael Åhlén

Hej,

Nu skriver jag från huvudet eftersom jag inte har min kod här så det kanske blir lite fel (är även lite trött :o)

Sidan med repeatern

<asp:Repeater id="myNavigation" runat="server">
     <ItemTemplate>
          <asp:HyperLink id="navLink" runat="server" />
     </ItemTemplate>
</asp:Repeater>
...
<asp:Repeater id="mySubNavigation" runat="server">
     <ItemTemplate>
          <asp:HyperLink id="subnavLink" runat="server" />
     </ItemTemplate>
</asp:Repeater>


Sedan i din code-behind:

void OnPreInit(...) {
     this.myNavigation.ItemDataBound += new RepeaterItemEventHandler(myNavigation_ItemDataBound);

     this.mySubNavigation.ItemDataBound += new RepeaterItemEventHandler(mySubNavigation_ItemDataBound);
}

void Page_Load(...) {
     this.myNavigation.DataSource = SiteMap.RootNode.ChildNodes;
     this.myNavigation.DataBind();
}

void myNavigation_ItemDataBound(...) {
     SiteMapNode node = (SiteMapNode)e.Item.DataItem;

     HyperLink hpl = (HyperLink)e.Item.FindControl("navLink");

     hpl.Text = node.Title;
     hpl.NavigateUrl = node.Url;

     if (SiteMap.CurrentNode == node ||
          node.IsDescendantOf(SiteMap.CurrentNode) {
          this.mySubNavigation.DataSource = node.ChildNodes;
          this.mySubnavigation.DataBind();
          
          // sätter även en en cssclass för att göra noden "aktiv"
          hpl.CssClass = "navActive";
     }
}

void mySubNavigation_ItemDataBound(...) {
     SiteMapNode node = (SiteMapNode)e.Item.DataItem;

     HyperLink hpl = (HyperLink)e.Item.FindControl("subnavLink");

     hpl.Text = node.Title;
     hpl.NavigateUrl = node.Url;
}


Man kan givetvis göra så här i oändligheten men nu visar jag bara level 1 och 2. För att visa rootnoden så kan du enkelt skapa en HyperLink som är utanför repeatern som du sedan sätter rootNode.Text = SiteMap.RootNode.Title;
rootNode.NavigateUrl = SiteMap.RootNode.Url;

Hoppas jag inte gjorde allt för många fel ;-)

/m


Svara

Sv:Meny med Sitemap?

Postades av 2006-12-19 14:42:59 - Magnus Hallberg

Borde det inte gå att få ut titel och url på nåt enklare sätt från den nod man är på? Man kan ju kolla om noden har childnodes, då borde man ju kunna fåt ut dom på nåt sätt också.


Svara

Sv: Meny med Sitemap?

Postades av 2006-12-19 23:19:17 - Mikael Åhlén

Magnus, menar du "få ut titel och url" för currentNode? Det går. genom SiteMap.CurrentNode.Url eller .Title

/m


Svara

Sv:Meny med Sitemap?

Postades av 2006-12-20 02:32:37 - Magnus Hallberg

Nja inte riktigt. Jag menar att eftersom jag står i current node och kan kolla om current node har child nodes så måste jag väl kunna få ut dessa child nodes ganska enkelt? Et exempel, säg att min SiteMap ser ut så här:
<code>
<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode url="" title="" description="">
<siteMapNode url="~/default.aspx" title="START" description="Till förstasidan." />
<siteMapNode url="~/company/default.aspx" title="Företaget" description="Information om företaget.">
<siteMapNode url="~/company/aboutUs.aspx" title="Om oss" description="Information om företaget." />
<siteMapNode url="~/company/personal.aspx" title="Personal" description="Information om vår personal." />
</siteMapNode>
<siteMapNode url="~/service/default.aspx" title="Tjänster" description="Information om våra tjänster.">
<siteMapNode url="~/service/develop.aspx" title="Webbutveckling" description="Information om webbutveckling." />
</siteMapNode>
<siteMapNode url="~/contact/default.aspx" title="Kontakt" description="Information om hur du kontaktar oss." />
<siteMapNode url="~/news/default.aspx" title="Nyheter" description="våra nyheter.">
<siteMapNode url="~/news/archive.aspx" title="Nyhetsarkiv" description="Vårt nyhetsarkiv." />
</siteMapNode>
<siteMapNode url="~/shop/default.aspx" title="Butiken" description="Vår butik." />
<siteMapNode url="~/logIn.aspx" title="Logga in" description="Här loggar du in." />
</siteMapNode>
</siteMap>
</code>
Säg nu att jag står på sidan "Företaget", den har ju två child nodes. Hur kan jag få ut dem? Det jag behöver är alltså titel och url. Står jag sedan på sidan "Butiken" ska det inte hämtas nåt eftersom den inte har några child nodes. Kolla om det finns child nodes vet jag hur man gör, men hur kommer jag åt dessa child nodes om det finns några och hur kan jag komma åt just titel och url på dem?


Svara

Sv: Meny med Sitemap?

Postades av 2006-12-20 10:35:33 - Mikael Åhlén

aha,

Du kan få ut dem via ChildNodes som även den är en property (SiteMap.CurrentNode.ChildNodes) som returnerar en Collection av SiteMapNodes som du kan binda till en repeater, köra en foreach etc etc.

/m


Svara

Sv:Meny med Sitemap?

Postades av 2006-12-20 11:20:36 - Magnus Hallberg

Thoho nu fick jag det att fiungera. Tackar Micke :)


Svara

Sv: Meny med Sitemap?

Postades av 2006-12-22 16:39:30 - Mikael Åhlén

Varför Stängd och inte löst?


Svara

Sv:Meny med Sitemap?

Postades av 2006-12-22 19:11:25 - Magnus Hallberg

Sorry, jag hade klickat i fel. Har rättat till det. Tackar för hjälpen också:)


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 170
27 953
271 705
4 107
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies