Hej. Hej, du kan ta en titt på MS Navigerings block om du vill rätt smidigt. Jag har gjort det där fast i ASP. Jag försöker nu använda samma system till ASP.Net och hittils har det funkat bra. Det jag menade med att du kunde använda UIP blocket är för där har du en Statehanterare som du kan bygge precis hur du vill. Ex om den skall spara eller hämta state från databas eller från sessioner eller kanske från querystrings etc... Detta kör jag med (fast ska koda om det till C#).Bästa sättet att bygga upp en sajt
Jag ska bygga en sajt i asp.net med mellan 10-20 huvudmenyer. Sedan så kommer jag även ha 4-5 undermenyer till varje huvud meny. Jag har tänkt att bygga så att jag har en default.aspx + massor med user controls (sidan.ascx). Jag har även tänkt att när man är inne på "nyheter.ascx" (default.aspx?page=nyheter) så ska undermenyn visas (den rätta alltså) och även ifall man är inne på en huvudmeny. När jag gjorde detta så var jag lov att göra så att jag skrev sidan + vilken meny som skulle visas ifall man var inne på den sidan, Default.asp?page=sidan&u=3. 3 = vilken undermeny.
Men finns det något smartare sätt med asp.net? Jag har tänkt på sessions men vill veta ifall det finns några andra bra sätt / teorier att göra detta på. Jag vill alltså få bort siffran.
Hoppas ni förstod hur jag menade.
// Mikael ÅhlénSv: Bästa sättet att bygga upp en sajt
http://msdn.microsoft.com/library/en-us/dnpag/html/uipab.asp?frame=true
Mvh JohanSv: Bästa sättet att bygga upp en sajt
Det jag gör är att jag använder en databas. Från QueryStringen hämtar jag page id:et och på så sätt få fram vilken sida som ska inkluderas och vilka sidor som ligger i samma undergrupp. Jag använder mig också av *.aspx filer ist för user controlls.
Fördelen med detta är en superenkel administration. Du skriver helt enkelt en admin sida där du kan skapa och ta bort sidor ur databasen. Du slipper använda och ändra en massa if sattser så fort du ska uppdatera sidan (antar att du tänkt använda if sattser för att få rätt user controll, eller är jag helt fel ute?).Sv: Bästa sättet att bygga upp en sajt
State["PageID"] = 3;
State.Save();
pageId = State["PageID"];
Så kommer denna data att plockas från den källa du angett att en StateProvider skall lagra den.
Dock klarar den bara att Navigera mellan aspx sidor :-(
Jag byggde dock en egen Navigator där jag navigerar mellan kontroller, min ViewManger (den som laddar in rätt kontroll åt mig) tar min Page som input så jag lätt kan ersätta en ja låt säga Panel med den dynamiska kontrollen. Innan navigeringen sker kan jag spara undan ett id som jag sedan från kontrollen plockar upp.
Du kan ju köra med querystring som nu, det spelar ju egentligen ingen större roll. det är mer vad du anser snyggast, massa kladd i urlen eller en ren url...
Mvh JohanSv: Bästa sättet att bygga upp en sajt
<code>
Imports System.Web.UI
Imports System.Web.UI.WebControls
Public Class MinCodeBehind : Inherits Page
Protected WithEvents myPlaceHolder As Placeholder
Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Dim myControl As Control
If Request.Querystring("page")<>"" Then
If System.IO.File.Exists(Server.MapPath("ab/" + Request.QueryString("page") + ".ascx")) Then
myControl = CType((LoadControl("ab/" + Request.QueryString("page") + ".ascx")), Control)
Else
myControl = CType((LoadControl("ab/support.ascx")), Control)
End If
Else
myControl=Ctype((LoadControl("ab/start.ascx")), Control)
End If
myPlaceHolder.Controls.Add(myControl)
End Sub
End Class
</code>