ASPTipsSkapa länkarna dynamiskt
[ Hem ] Allmänt ASP XML SQL ADO HTML CSS VB Java Design Karta
Grunder Input/output VBScript Databaser Tips Exempel

Skapa länkarna dynamiskt

En vanlig situation är att vi vill få in föregående/nästa länkar i våra sidor. Om vi löser detta med traditionell HTML så får vi vissa problem om vi vill sätta in nya sidor i en sekvens eller om vi vill ändra på den ordningsföljd sidorna har.

Man kan använda ASP Content Linking för att förenkla detta.

Detta går ut på att man skapar en fil med filnamn och beskrivningar som sedan hanteras dynamiskt

Ett exempel på en sådan fil kommer nedan


links.asp   Länkar
intro.asp   ASP
intro1.asp   Annat
intro2.asp   En sida
intro3.asp   En till
intro4.asp   Sök

d.v.s
Filnamn  Tabulator  Förklaringstext  

Ovanstående lista blev dynamiskt skapad med följande kod (filen hette intro.txt och fanns i en data katalog:

<table>
<tr>
<td colspan="3"><hr></td>
</tr>
<% Set NextLink = Server.CreateObject ("MSWC.NextLink")
count = NextLink.GetListCount ("../data/intro.txt")
I = 1
Do While (I <= count) %>

<tr>
<td><%= NextLink.GetNthURL ("../data/intro.txt", I) %></td>
<td>&nbsp;</td>
<td><%= NextLink.GetNthDescription ("../data/intro.txt", I) </td>
I = (I + 1) %>

</tr>
<% Loop %>
<tr>
<td colspan="3"><hr></td>
</tr>
</table>

Man behöver ofta länkar till föregående och nästa:
<a href="FöregåendeURL">FöregåendeFörklaring</a>
<a href="NästaURL">NästaFörklaring</a>

Till exempel
<a href="intro1.asp">2. Vad är ASP</a>
<a href="intro3.asp">4. När behöver man ASP?</a>

Och varför inte lite bilder
<a href="FöregåendeURL">
<IMG SRC="../images/prev.gif" width="21" height="15" border="0">
FöregåendeFörklaring</a>
<a href="NästaURL">
<IMG SRC="../images/next.gif" width="21" height="15" border="0">
NästaFörklaring</a>

Följande kod gör dessa länkar automatiskt:

<!-- Skapa förra och nästa länkar med hjälp av Content Linking -->
<%  Set nextdb = Server.CreateObject ("MSWC.NextLink")
listFile = "../data/easy.txt" %>

<%  If (nextdb.GetListIndex (listFile) > 1) Then  %> 
<a href="<%  = nextdb.GetPreviousURL (listFile)  %>">
<IMG SRC="../images/prev.gif" width="21" height="15" border="0">
<%  = nextdb.GetPreviousDescription (listFile)  %></a>
<%  End If  %>
<a href="<%  = nextdb.GetNextURL (listFile)  %>">
<%  = nextdb.GetNextDescription (listFile)  %>
<IMG SRC="../images/next.gif" width="21" height="15" border="0"></a>
<!-- Slut på koden-->

Raden:
<%  Set nextdb = Server.CreateObject ("MSWC.NextLink")  %>
skapar ett objekt av typen Content Linking Component som kan användas för navigering.

<%  = nånSlagsAspKod  %>
gör att resultatet av ASPkoden sätts in direkt i HTML koden

Content Linking Component komponenten har följande metoder:

GetListCount
Räknar antal reder i den fil som används för navigeringen (intro.txt i det här fallet)


Syntax:
objekt.GetListCount(listfil)

Exempel:
<% count = nextdb.GetListCount("../data/index.txt") %>

GetNextURL
Returnerar URL för nästa rad i navigeringsfilen


Syntax:
objekt.GetNextURL(listfil)

Exempel:
<% nextFile = nextdb.GetNextURL("../data/index.txt") %>

GetNextDescription
Returnerar förklaringen för nästa rad i navigeringsfilen


Syntax:
objekt.GetNextDescription(listfil)

Exempel:
<% nextDesc = nextdb.GetNextDescription("../data/index.txt") %>

GetPreviousURL
Returnerar URL för föregående rad i navigeringsfilen


Syntax:
objekt.GetPreviousURL(listfil)

Exempel:
<% prevFile = nextdb.GetPreviousURL("../data/index.txt") %>

GetPreviousDescription
Returnerar förklaringen för föregående rad i navigeringsfilen


Syntax:
objekt.GetPreviousDescription(listfil)

Exempel:
<% prevDesc = nextdb.GetPreviousDescription ("../data/index.txt") %>

GetListIndex
Returnerar index i navigeringsfilen för den nuvarande filen


Syntax:
objekt.GetListIndex(listfil)

Exempel:
<% currentIndex = nextdb.GetListIndex("../data/index.txt") %>

GetNthURL
Returnerar URL för en viss rad i navigeringsfilen


Syntax:
objekt.GetNthURL(listfil, index)

Exempel:
<% fileIs = nextdb.GetListCount ("../data/index.txt",2) %>

GetNthDescription
Returnerar förklaringen för en viss rad i navigeringsfilen


Syntax:
objekt.GetNthDescription(listfil, index)

Exempel:
<% count = nextdb.GetNthDescription ("../data/index.txt",3) %>
Man kan exempelvis skriva in följande i ASP filen för att skriva ut alla filer
<%  Set NextLink = Server.CreateObject ("MSWC.NextLink")
  count = NextLink.GetListCount("../data/ex.txt")
  I = 1
  Do While (I <= count)  %>

<%  = NextLink.GetNthURL("../data/ex.txt", I)  %><br>
<%  I = (I + 1)  
  Loop  %>

Eller detta för att skriva ut alla beskrivningar

<%  Set NextLink = Server.CreateObject ("MSWC.NextLink")
  count = NextLink.GetListCount("../data/ex.txt")
  I = 1
  Do While (I <= count)  %>

<%  = NextLink.GetNthDescription("../data/ex.txt", I)  %><br>
<%  I = (I + 1)  
  Loop  %>

Varför inte kombinera i hop detta till:

<ol>
<%  Set NextLink = Server.CreateObject ("MSWC.NextLink")  %>
<%  count = NextLink.GetListCount("../data/ex.txt")  %>
<%  I = 1  %><ul>
<%  Do While (I <= count)  %>
<li><a href=" <%  = NextLink.GetNthURL("../data/ex.txt", I)  %>">
<%  = NextLink.GetNthDescription("../data/ex.txt", I)  %></a>
<%  I = (I + 1)  %>
<%  Loop  %>
</ul>
</ol>

Vilket resulterar i HTML koden:
<ol>
<ul>
<li><a href="default.asp"> Introduktion </a>
<li><a href="links.asp"> Länkar till mer information </a>
<li><a href="intro.asp"> Systemkrav för ASP </a>
<li><a href="intro1.asp"> Vad är ASP? </a>
<li><a href="intro2.asp"> Vad behöver man kunna? </a>
<li><a href="intro3.asp"> När behöver man ASP? </a>
<li><a href="intro4.asp"> Hur fungerar ASP? </a>
</ul>
</ol>

Vilket i sin tur ger resultatet:

Denna metod går att kombinera med include. Se exemplet på detta

För dessa sidor används följande konstruktion

<%@ LANGUAGE="VBSCRIPT" %>
<% listFile = "../data/easy.txt" %>

<!--#include file="../inc/navstuff.asp" -->

Där man först sätter default script language. Sedan sägs det vilken listfil som används. Sedan inkluderas filen navstuff.txt som innehåller koden som går igenom aktuell listfil

<!-- Skapa förra och nästa länkar med hjälp av Content Linking -->
<%  Set nextdb = Server.CreateObject ("MSWC.NextLink")
<%  If (nextdb.GetListIndex (listFile) > 1) Then  %> 
Och så vidare...

Detta gör att när en sida laddas sätts automatiskt rätt listfil

Fördelen med denna metod är att man kan sätta in nya filer i fillistan eller ändra på förklaringarna. Detta gör att navigeringsordningen kommer att ändras utan att man behöver skriva om koden i html/asp sidorna

  Mångspråkiga sidorEtt förslag till layoutmetod
Tips
Använd include!
Mångspråkiga sidor
Skapa länkarna dynamiskt
Ett förslag till layoutmetod
Konvertera ASP till HTML
Kompletterande saker till layoutmetoden
Browserkontroll


Top
< Mångspråkiga sidor Ett förslag till layoutmetod>
© Anders Enges, Vörå 2002  | 21.09.01 22:39 Visa asp koden