Hej Om du vill kan du ju köra Nsqaured2s template hanterare, på så vis får du samma utsséende hela tiden. Du kan då skapa en menykontrol där slänger du in ett event som din default.aspx lyssnar på och på så vis laddar om en main kontroll eller laddar om en frame m.m. Marcus, Hej Andreas Som det redan är sagt så måste du då lägga navigation, header och dylikt i kontroller. Kontrollerna står för den funktionalitet du fick med include i klassisk ASP. Marcus, Hej och tack alla.Include, frame, iframe div ????
Jag har sökt, letat och framför allt försökt förstå hur man bygger upp sin design på då det gäller
alla "fönster"
Vi tar pellesoft som ett exempel.
Jag vill ha min meny på alla sidor utan för den saken skull behöva göra en meny på varje sida.
Jag vill att sidan skall se ut som 1. Och bete sig så fast någon del av sidan, som här tex så har
du till höger om menyn detta forum. Klickar du på Forum i menyn så öppnas det här i mitten. Hela
sidan laddas om (detta gör inte om man använder frame?)
Alltså:
(allt bygger på aspx)
1. Ha en meny tex. till höger. på alla sidor som du finns på din hemsida
2. Kanske tom. ha en top sida som visar logo, datum osv.
3. En länk i menyn skall öppnas i mitten, som här på pellesoft.
4. Ytterligare ett "fönster" längt till höger för info som lathund osv, precis som på pellesoft.
- Sidan uppfattas som 1. Man kan tex markera texen på hela sidan.
Då är frågan, vad används?
-Tabeller
-Frame
-Include
-Div
-Style sheets
-Query string
och isåfall hur? När jag använder include aspx så får jag felmeddelande att man inte får använda
mer än 1 <frame> tag. Ja det finns lite problem här och där. Men finns det någon som kan vara
snäll och förklara lite.
Har börjat med webbutveckling efter att asp .net släpptes. Har alltså ingen direkt erfarenhet då
man fick göra saker på det "hårda sättet" om ni förstår hur jag menar. Idag tycker jag allt verkar
lättare, och om jag förstår det rätt är det många här ute som håller med?!
Tack för hjälpen och visat tålamod...
H.
Marcus CSv: Include, frame, iframe div ????
Vill du inte använda mallen så blir du tvungen att för varje aspx sida du gör lägga till en menykontrol som du skapat. Du får ju samma resultat men mera arbete.
Mvh JohanSv: Include, frame, iframe div ????
Löste ditt problem sig eller behöver du mer hjälp? Om du är klar med detta problemet så markera inlägget som antingen <b>löst</b> (om du hittat en lösning - skriva gärna vad den var så andra kan ta del av både fråga och svar) eller <b>stängd</b> (om du inte hittat en lösning men problemet inte är aktuellt längre).
Om du inte löst problemet och vill ha mer hjälp så skriv ett inlägg som beskriver var du står idag med problemet (vad du har provat etc) så skall vi se om vi inte kan hitta en lösning.
//AndreasSv: Include, frame, iframe div ????
Jag håller på att titta på detta. Det blir inte riktigt som jag tänkt mig. Har fått tips
att typ bara köra user controls, undvika include. Men tycker inte rikgit att jag får
till det som jag vill.
Jag vill ha min navigation som aftonbladet. allså kunna "öppna" en sida och forfarande
ha mina menyer, logotyp osv runt om.
MarcusSv: Include, frame, iframe div ????
Den sida som skall öppnas, t.ex. en nyhet på Aftonbladet är en mallsida, t.ex. nyhet.aspx. I den sidan placerar du dina kontroller där du vill. Sedan skickar man in ett nyhetsid och hämtar rätt nyhet i databasen. Sidan som sen visas har navigation och header från kontrollerna och innehållet är nyheten.
Som jag skrev i din andra tråd om detta så behöver du använda Page Templates, t.ex. Wilson MasterPages, om du vill göra det ännu enklare för dig.
/pD
www.pdc.se
www.pdc.se/blog
www.patrik-dahlen.nuSv: Include, frame, iframe div ????
Oki vi bryter det ner lite med aftonbladet som referens. Du kanske har hört att du bör använda <b>div</b> med css-positionering för att bygga upp din layout och även om detta är sant så finns det en liten modifkation till sanningen.
Nämligen att det är inte ett absolut måste på liv eller död. Det är helt ok att använda dig av en tabell för att bygga upp din layout och sen längre fram i tiden när du är lite mer bekväm med ASP.NET så kan du gå över till div. Det funkar oftast inte att lära sig två saker på en och samma gång, i ditt fall HTML+CSS layout och ASP.NET samtidigt.
Så använd en enkel tabell layout så du kan fokusera dig på att lära dig ASP.NET. Så vad gör vi då? Vi skapar en grov mall
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td colspan="3">
Detta är din header som ligger längst upp den sträcker sig
över 3 kolumner.
</td>
</tr>
<tr>
<td>Här placerar du navigeringen</td>
<td>
<asp:PlaceHolder id="PlaceHolder1" runat="server"></asp:PlaceHolder>
</td>
<td>Här placerar du annonser</td>
</tr>
<tr>
<td colspan="3">
Detta är din footer som ligger längst ner, den sträcker sig
över 3 kolumner.
</td>
</tr>
</table>
</code>
Nu har du en grov mall som anger en <b>asp:placeholder</b> i en av kolumnerna. Det är här du kommer att <b>dynamisk</b> vilja ladda in olika <b>UserControls (ascx)</b> beroende på vad man väljer i din meny.
Hur gör du enklast med dina ascx:er då? Du gör samma sak i princip. I din UserControl <b>designar</b> hur sidor av den typen skall se ut på samma sätt som vi gjorde för själva sidan. Låt oss säga att du bara gjort så här i en av dina usercontrols.
<h1>Nyhet</h1>
<asp:Panel id="Panel1" runat="server"></asp:PlaceHolder>
Nu har du en kontroll som visar en rubrik samt har plats för att ladda in innehåll. Var kommer innehållet ifrån? Förslagsvis från en databas. När du "surfar" till den delen av din webbsida som innehåller denna UserControl så skickar du med ett värde i din querystring som informerar den vilken sida som den skall använda, tex </b>http://www.dinsida.se/index.aspx?pageid=78</b>
Nu kan du inneifrån din UserControl läsa av detta med
[C#]
private void Page_Load(object sender, System.EventArgs e)
{
string id = Request.QueryString["pageid"];
if( id != null )
{
// Hämta innehåll från din databas där id:t stämmer
// med värdet på pageid, tex
// SELECT body FROM Contents WHERE pageid = id
Panel1.Controls.Add(new LiteralControl("....innehållet från databasen...."));
}
}
[VB.NET]
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim id As String = Request.QueryString.Item("pageid")
If Not id Is Nothing ) Then
// Hämta innehåll från din databas där id:t stämmer
// med värdet på pageid, tex
// SELECT body FROM Contents WHERE pageid = id
Panel1.Controls.Add(New LiteralControl("....innehållet från databasen...."))
End If
End Sub
Detta var en väldigt snabb genomgång på hur du kan göra för att få igång något som fungerar. När du känner dig bekräv i kläderna så är det bara att börja bygga på och ut din lösning, anpassa designen av sidan etc och till sist sitter du med något som du tycker uppfyller dina behov och som du är nöjd med.
Hoppas detta hjälper!
//Andreas
Sv: Include, frame, iframe div ????
Får det att fungera som ni förelår. Har byggt in kontrollerna menu osv inom divar som
jag formaterar via style sheets.
Nu får jag ju faktiskt möjlighet att uppdatera texter och så mycket lättare.
Tack för hjälpen
MarcusC